WinHugs bug #29, $$ doesn't work

"Neil Mitchell" <[email protected]> Thu, 29 Jun 2006 18:29:15 +0100
Newsgroups gmane.comp.lang.haskell.cvs.hugs
Message-ID <404396ef0606291029o74008487j71e0a280bccdbd72__15763.5623160333$1151602180$gmane$org@mail.gmail.com>
Hi,

I'm trying to track down: http://hackage.haskell.org/trac/hugs/ticket/29

The problem is in input.c, all the tests for $$ are written as:
if (it==textRepeat && reading==KEYBOARD) ...

The problem is that WinHugs doesn't pipe directly from the keyboard,
its from a string buffer, i.e. reading == STRING.

The possible values of reading are:

#define NOTHING    0                   /* what kind of input is being read?*/
#define KEYBOARD   1                   /* - keyboard/console?              */
#define SCRIPTFILE 2                   /* - script file                    */
#define STRING     3                   /* - string buffer?                 */
#define NOKEYBOARD 4                   /* - standard input, but not a tty  */

Without knowing the exact purpose of this check, its hard to know how
to modify it for WinHugs. Can I just do reading == KEYBOARD || reading
== STRING? Is there a particular reason that you can't use $$ in a
SCRIPTFILE? Is reading == KEYBOARD required?

Thanks

Neil