premove bug?

View: New views
5 Messages — Rating Filter:   Alert me  

premove bug?

by Kris Ganjam :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Some parts of this message have been removed. Learn more about Nabble's security policy.

Hi, I just upgraded to 4.4 from 4.2.7.  ICS premove appears to have changed its behavior.  I can no longer premove my first move of the game (when black).  Also, I can no longer premove a move which captures a piece.  This is very frustrating for a long-time lightning player.  Are there any workarounds or fixes available?  Let me know if you need more info on the problem.

 

Thanks,

-Kris


_______________________________________________
Bug-XBoard mailing list
Bug-XBoard@...
http://lists.gnu.org/mailman/listinfo/bug-xboard

Parent Message unknown Re: premove bug?

by h.g.muller :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

There seems to be at least one real problem here:

The premove texts (as given by the command-line option -premoveBlackText,
or through the Option->ICS menu dialog) is sent to the ICS prefixed with $.
And the ICS seems to dislike that. (At least my version of the Lasker 2.2.3
Chessd code rejects $d7d5 as illegal, while d7d5 was accepted.)
I checked, and $ was aliased to @.

Is this a change in ICS behavior? This has not changed since 4.2.7!
Normal moves are not prefixed with $. What is this prefixing with $
supposed to do anyway?




_______________________________________________
Bug-XBoard mailing list
Bug-XBoard@...
http://lists.gnu.org/mailman/listinfo/bug-xboard

Parent Message unknown Re: premove bug?

by Eric Mullins-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Eric Mullins wrote:
> On FICS, $<foo> prevents alias substitution.  backend.c attempts to
> set the prefix (for preventing alias substitution) based on the ICS
> type.  I don't know how well that works outside of FICS since that's
> all I ever use.  I'm not sure which part of the code contains the
> prefix for premove, but it should be using the ics_prefix variable
> instead of '$' in order to presumably use the correct one based on ICS
> type.

As an aside: from a design perspective, this behavior should be
encapsulated in the SendToICS routine().  neither frontend nor backend
code should ever have to concern itself with prepending a prefix when
issuing server commands.  Yet pretty much every command we issue to the
server technically should be prepended with a prefix if availabe.  (You
don't want 'set width 40' to become something else when the user has an
alias for 'set')



_______________________________________________
Bug-XBoard mailing list
Bug-XBoard@...
http://lists.gnu.org/mailman/listinfo/bug-xboard

Re: premove bug?

by Tim Mann :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Wed, 21 Oct 2009 19:28:44 +0200, "h.g. muller" <h.g.muller@...> wrote:

> There seems to be at least one real problem here:
>
> The premove texts (as given by the command-line option -premoveBlackText,
> or through the Option->ICS menu dialog) is sent to the ICS prefixed with $.
> And the ICS seems to dislike that. (At least my version of the Lasker 2.2.3
> Chessd code rejects $d7d5 as illegal, while d7d5 was accepted.)
> I checked, and $ was aliased to @.
>
> Is this a change in ICS behavior? This has not changed since 4.2.7!
> Normal moves are not prefixed with $. What is this prefixing with $
> supposed to do anyway?

IIRC:  chessclub.com and freechess.org both have features that let
you prefix a command with a special character to quote the command so
that the alias feature wouldn't look at it and possibly change it to a
different command.  Unfortunately they use different characters.
xboard tries to use that, at least on some commands, so that users
can't accidentally (or deliberately) goof things up by aliasing a
command that xboard wants to send directly to the ICS to something else.

Apparently that doesn't work with moves, at least on the ICS you're
looking at.  Glancing at the old change log, I noticed that we
generally try not to use it with moves: "Removed the leading
alias-suppression character when sending a move to ICS, because it
seemed to break accuclock on chess.net."  I guess premoves must go
through a different path and the character got left in for them.

By the way, I notice -premoveBlackText is not documented in the xboard
docs, but is in winboard.  (That was my error -- I notice it's that way
in 4.2.7.)

--
Tim Mann  tim@...  http://tim-mann.org/


_______________________________________________
Bug-XBoard mailing list
Bug-XBoard@...
http://lists.gnu.org/mailman/listinfo/bug-xboard

Re: premove bug?

by h.g.muller :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

OK, so it is a left-over, and I can savely remove it. Normally moves are
sent (unprefixed) to the ICS by a routine SendMoveToICS(), which takes
square coordinates as parameters. But thefirst  premove given in the
command-line option is not available as coordinates, but as a string, so
it uses another routine for sending text to the ICS (SendToICS()). And
before it uses that, it explicitly prefixes it. So I will just remove
that.

The prefixing is unfortunately done entirely in back-end; there is no
low-level implementation for this.



_______________________________________________
Bug-XBoard mailing list
Bug-XBoard@...
http://lists.gnu.org/mailman/listinfo/bug-xboard