[comp.lang.perl] bug in curses.mus -- {,w}getstr

ronald@robobar.co.uk (Ronald S H Khoo) (04/23/91)

Doesn't anyone use curseperl?  The mus munged call to getstr
becomes something like retval = getstr(&str) which really
wants to be getstr(str).  Similarly for wgetstr().

I don't know any mus, so I hacked the C output (yuk).  More elegant fixes
welcome :-)

[ Also, I don't know how this might affect anyone else, but I had to
  change the parameter to ?addch to be unsigned char, because I
  hacked my copy of BSD curses to be 8 bit clean.  It's probably
  no use to anyone else now though, because the tty handling became
  slightly System V dependent in the process (arrrrrggghhh :-) ]
-- 
Ronald Khoo <ronald@robobar.co.uk> +44 81 991 1142 (O) +44 71 229 7741 (H)

me@anywhere.EBay.Sun.COM (Wayne Thompson - IR Workstation Support SE) (04/24/91)

I am writing a hypertext engine in curseperl, but don't use w*getstr.
But I try using getcap and it always comes up empty.
4.003 SunOS4.1.1 BSD curses lib. Any thoughts?

Wayne

In article <1991Apr22.214135.14651@robobar.co.uk> you write:
|> Doesn't anyone use curseperl?  The mus munged call to getstr
|> becomes something like retval = getstr(&str) which really
|> wants to be getstr(str).  Similarly for wgetstr().
|> 
|> I don't know any mus, so I hacked the C output (yuk).  More elegant fixes
|> welcome :-)
|> 
|> [ Also, I don't know how this might affect anyone else, but I had to
|>   change the parameter to ?addch to be unsigned char, because I
|>   hacked my copy of BSD curses to be 8 bit clean.  It's probably
|>   no use to anyone else now though, because the tty handling became
|>   slightly System V dependent in the process (arrrrrggghhh :-) ]
|> -- 
|> Ronald Khoo <ronald@robobar.co.uk> +44 81 991 1142 (O) +44 71 229 7741 (H)

ronald@robobar.co.uk (Ronald S H Khoo) (04/25/91)

me@anywhere.EBay.Sun.COM (Wayne Thompson - IR Workstation Support SE) writes:

> I am writing a hypertext engine in curseperl, but don't use w*getstr.

Granted *getstr doesn't belong in production code, but it *is* useful for
debugging ...  that's why I hacked mine to work ...

> But I try using getcap and it always comes up empty.

Hmm..  Lemme try that. Oh, hang on.  Did you call &initscr first ?
#!curseperl
$before = &getcap("cm"); &initscr; $after = &getcap("cm"); &endwin;
printf("before is %d long and after is %d long\n",
	length($before), length($after));
__END__
gives me:
before is 0 long and after is 10 long

Not very intuitive, is it?

> 4.003 SunOS4.1.1 BSD curses lib. Any thoughts?

I don't suppose that's much different from the curses I'm using, which
is the curses and termcap from the BSD 4.3-reno freed files collection
as found on ftp.uu.net and wuarchive.wustl.edu, heavily hacked to work
with System V termio (cos SCO Xenix's V7 tty compatibilty ioctls are
broken) and made it 8 bit clean(ish) at the same time ...
Possibly the easiest way to bring up curseperl on System V ? :-)
-- 
Ronald Khoo <ronald@robobar.co.uk> +44 81 991 1142 (O) +44 71 229 7741 (H)