converted dos2unix format for xboard.texi
[xboard.git] / ToDo
diff --git a/ToDo b/ToDo
index da3ad3b..9a84006 100644 (file)
--- a/ToDo
+++ b/ToDo
@@ -68,7 +68,7 @@ computer think really hard about certain positions." (Dino Dini)
 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)
+**108. Could add search depth and time per move to (WinBoard)
 TimeControl dialog.
 
 140. LoadPosition needs better checking for invalid data.
@@ -84,23 +84,24 @@ 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.
+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.
+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.
+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.
+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,
@@ -122,7 +123,8 @@ 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.
+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
@@ -136,10 +138,11 @@ 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.
+output in it. [fixed in WinBoard_x]
 
 178. Need reliable kill for chess engine on Win32.  See also 161.
 
@@ -272,7 +275,7 @@ 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.
+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.
@@ -280,7 +283,7 @@ 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.]
+-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
@@ -296,11 +299,9 @@ 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?]
 
-**227. Illegal moves from buggy engine should stop the game.  
-
-227a. In engine-engine matches, the buggy engine should lose.  An
-engine that crashes should lose and perhaps get restarted for the next
-game.
+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
@@ -311,7 +312,7 @@ next game.
 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.
+nontrivial. [Added in 4.3]
 
 228. RichEdit bug: sometimes a line gets indented as if it were
 wrapped when it should be flush left.
@@ -390,7 +391,45 @@ 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.
+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
@@ -405,7 +444,8 @@ 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.
+don't work without it. [The Winboard_x -overrideLineGap option provides
+this.]
 
 276a. Make color of grid an option, instead of always black.
 
@@ -423,9 +463,7 @@ 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.
-
-280. Need a way to log raw ICS i/o in WinBoard.debug file, as xboard's
-debug mode does.  Would help in finding bugs at times.
+[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.
@@ -520,14 +558,16 @@ 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.
+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.
+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.  
+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
@@ -538,7 +578,8 @@ 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.
+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.
@@ -559,7 +600,7 @@ 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.)
+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.
@@ -591,7 +632,8 @@ 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.
+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.
 
@@ -640,6 +682,40 @@ 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
@@ -656,8 +732,8 @@ cheater.
 :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]
+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.
@@ -678,7 +754,7 @@ 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 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.
@@ -735,6 +811,8 @@ 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.
@@ -750,8 +828,8 @@ it matches on help files a bit too often.  (e.g. FICS "help sr_info")
 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 only sizes that
-are found there, as the pixmap code does.
+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.
@@ -774,9 +852,8 @@ as at present.
 console window, or something.
 
 402. Internationalization.  It probably isn't practical to retrofit
-this into the current code base.
-
-****406. "telluser" needs to be made nonmodal in winboard.
+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
@@ -787,6 +864,7 @@ 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.
@@ -797,7 +875,8 @@ 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.
+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.
@@ -836,13 +915,11 @@ 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.
 
-**448. add notes on non-xboard GUIs from Dieter Buerssner to document?
-
 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.  See
-http://www.freechess.org/SuperMamer/parsing.html
+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.
@@ -852,6 +929,7 @@ 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
@@ -870,16 +948,14 @@ 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.
 
-**466. Check whether engine sometimes gets extra "quit" and restart
-when reuse is off.  See Bob Hyatt message of 3/13/2001 and 3/15/2001,
-also mentioned again 6/12/20001.
-
 **468. Need to look at Wilkin Ng's contributions!
 
 **469. Look at Zippy's behavior if the operator observes, follows,
@@ -906,11 +982,13 @@ timeseal issue and nothing to do with WinBoard itself.
 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.
+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).
+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).
@@ -935,7 +1013,8 @@ just trying to win a single game."
 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?
+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.
@@ -945,31 +1024,41 @@ 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.)
+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.
+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.
+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?
 
@@ -981,7 +1070,9 @@ 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.
+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
@@ -998,7 +1089,7 @@ Ugh, but I suppose it would be helpful sometimes.
 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.
+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),
@@ -1008,10 +1099,12 @@ 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.
+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.
+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
@@ -1052,12 +1145,6 @@ 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.
 
-505. On Windows we use rand() for random numbers, which ranges only up
-to 0x7fff.  That means that on Windows, only zippy.lines sayings that
-start in the first 32767 bytes of the file can ever be used.  It looks
-like the only fix is to have our own 32-bit implementation of
-random().  Sigh.
-
 506. One user wants a board size even smaller than Tiny.
 
 507. Suggested: have the cursor change to a gripping hand while moving
@@ -1076,16 +1163,251 @@ count down until he moves.
 feature in winboard (other than the non-user-friendly login.ini file).
 Seems easy enough to add such a thing.
 
-511. It's been reported that WinBoard has a problem with command line
-parsing when built with Cygwin: If a Cygwin-compiled WinBoard is in
-C:\Program Files\WinBoard\WinBoard.exe, it prints an error message on
-startup about Files\WinBoard\WinBoard.exe being an invalid parameter.
-This sounds like a Cygwin bug (passing an incorrect parameter to
-WinMain), though maybe there is some workaround.
+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 changes made in winboard are propagated to xboard
-- make sure changes made in xboard are propagated to winboard
+- 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 
@@ -1093,5 +1415,5 @@ Before each release:
 - make sure ChangeLog is complete
 - test changes
 
-*** up to date with mail received through 1 Feb 2001, except
-for "protover 3" discussion ***
+*** up to date with mail received through 5 Nov 2003, except
+for the "protover 3" discussions on the chess-engines mailing list ***