1. bug in position()

Hi Robert,
As windows consoles may have more than 25 lines, there is a bug with the actual
implementation of position().
If line is greater than 25 euphoria crash. (tested on windows xp pro)

exemple:
include graphics.e
sequence pos
pos = get_position()
position(pos[1],pos[2]-1) -- crash if pos[1]>25


regards,
Jacques Deschênes

p.s. Folks forget about my previous message, I read message sequentially and
don't check other's
reply before replying.

new topic     » topic index » view message » categorize

2. Re: bug in position()

jacques deschênes wrote:
> As windows consoles may have more than 25 lines, there is a bug with the
> actual implementation
> of position().
> If line is greater than 25 euphoria crash. (tested on windows xp pro)
> 
> exemple:
> }}}
<eucode>
> include graphics.e
> sequence pos
> pos = get_position()
> position(pos[1],pos[2]-1) -- crash if pos[1]>25
> </eucode>
{{{


Ok, thanks Jacques.
I duplicated the problem on my machine.
I'll fix it for the next release.
A couple of other people have reported similar 
problems with consoles over 25 lines. It's not just 2.5, 
but earlier releases too.

Regards,
   Rob Craig
   Rapid Deployment Software
   http://www.RapidEuphoria.com

new topic     » goto parent     » topic index » view message » categorize

3. Re: bug in position()

Robert Craig wrote:
> jacques deschênes wrote:
> > As windows consoles may have more than 25 lines, there is a bug with the
> > actual implementation
> > of position().
> > If line is greater than 25 euphoria crash. (tested on windows xp pro)
> > 
> > exemple:
> > }}}
<eucode>
> > include graphics.e
> > sequence pos
> > pos = get_position()
> > position(pos[1],pos[2]-1) -- crash if pos[1]>25
> > </eucode>
{{{

> 
> Ok, thanks Jacques.
> I duplicated the problem on my machine.
> I'll fix it for the next release.
> A couple of other people have reported similar 
> problems with consoles over 25 lines. It's not just 2.5, 
> but earlier releases too.

As a quick fix, try calling text_rows()
in graphics.e. That seems to tell Euphoria about the larger number
of lines, and stop it from giving a false error report. e.g.

include graphics.e
sequence pos

if text_rows(43) then
end if
pos = get_position()
position(pos[1],pos[2]-1) -- crash if pos[1]>25


The ed editor does that, and it handles
console windows with a large number of lines.

Regards,
   Rob Craig
   Rapid Deployment Software
   http://www.RapidEuphoria.com

new topic     » goto parent     » topic index » view message » categorize

4. Re: bug in position()

jacques deschênes wrote:
> 
> 
> Hi Robert,
> As windows consoles may have more than 25 lines, there is a bug with the
> actual implementation
> of position().
> If line is greater than 25 euphoria crash. (tested on windows xp pro)
> 
> exemple:
> }}}
<eucode>
> include graphics.e
> sequence pos
> pos = get_position()
> position(pos[1],pos[2]-1) -- crash if pos[1]>25
> </eucode>
{{{

> 
> regards,
> Jacques Deschênes
> 
> p.s. Folks forget about my previous message, I read message sequentially and
> don't
> check other's 
> reply before replying.
> 

Hi

I've never thought of this a bug, just a feature of the language. Some screens
have lines > 25, and if you have set the screen to one of these modes, then you
can write to > 25. SCREEN_LINES tells you how long the screen is

SCREEN_LINES = vid_conf[VC_LINES]
SCREEN_COLS = vid_conf[VC_COLUMNS]


then just wrap position with a check for the length of the screen to prevent
crashes.

Please, any changes should not affect the abilty to write beyond 25 lines

Chris

http://members.aol.com/chriscrylex/euphoria.htm
http://uboard.proboards32.com/
http://members.aol.com/chriscrylex/EUSQLite/eusql.html

new topic     » goto parent     » topic index » view message » categorize

5. Re: bug in position()

Thanks Robert for the fix, it works

regards,
Jacques Deschênes

Robert Craig wrote:
> 
> Robert Craig wrote:
> > jacques deschênes wrote:
> > > As windows consoles may have more than 25 lines, there is a bug with the
> > > actual implementation
> > > of position().
> > > If line is greater than 25 euphoria crash. (tested on windows xp pro)
> > > 
> > > exemple:
> > > }}}
<eucode>
> > > include graphics.e
> > > sequence pos
> > > pos = get_position()
> > > position(pos[1],pos[2]-1) -- crash if pos[1]>25
> > > </eucode>
{{{

> > 
> > Ok, thanks Jacques.
> > I duplicated the problem on my machine.
> > I'll fix it for the next release.
> > A couple of other people have reported similar 
> > problems with consoles over 25 lines. It's not just 2.5, 
> > but earlier releases too.
> 
> As a quick fix, try calling text_rows()
> in graphics.e. That seems to tell Euphoria about the larger number
> of lines, and stop it from giving a false error report. e.g.
> 
> }}}
<eucode>
> include graphics.e
> sequence pos
> 
> if text_rows(43) then
> end if
> pos = get_position()
> position(pos[1],pos[2]-1) -- crash if pos[1]>25
> </eucode>
{{{

> 
> The ed editor does that, and it handles
> console windows with a large number of lines.
> 
> Regards,
>    Rob Craig
>    Rapid Deployment Software
>    <a href="http://www.RapidEuphoria.com">http://www.RapidEuphoria.com</a>
>

new topic     » goto parent     » topic index » view message » categorize

6. Re: bug in position()

The bug that get_position() return the right line number event if its greater
than 25 so position() should not crash when passing it parameters obtained from
get_position() as shown in my exemple.

jacques


Chris Burch wrote:
> 
> jacques deschênes wrote:
> > 
> > 
> > Hi Robert,
> > As windows consoles may have more than 25 lines, there is a bug with the
> > actual implementation
> > of position().
> > If line is greater than 25 euphoria crash. (tested on windows xp pro)
> > 
> > exemple:
> > }}}
<eucode>
> > include graphics.e
> > sequence pos
> > pos = get_position()
> > position(pos[1],pos[2]-1) -- crash if pos[1]>25
> > </eucode>
{{{

> > 
> > regards,
> > Jacques Deschênes
> > 
> > p.s. Folks forget about my previous message, I read message sequentially and
> > don't
> > check other's 
> > reply before replying.
> > 
> 
> Hi
> 
> I've never thought of this a bug, just a feature of the language. Some screens
> have lines
> > 25, and if you have set the screen to one of these modes, then you can write
> > to >
> 25. SCREEN_LINES tells you how long the screen is
> 
> SCREEN_LINES = vid_conf[VC_LINES]
> SCREEN_COLS = vid_conf[VC_COLUMNS]
> 
> 
> then just wrap position with a check for the length of the screen to prevent
> crashes.
> 
> Please, any changes should not affect the abilty to write beyond 25 lines
> 
> Chris
> 
> <a
> href="http://members.aol.com/chriscrylex/euphoria.htm">http://members.aol.com/chriscrylex/euphoria.htm</a>
> <a href="http://uboard.proboards32.com/">http://uboard.proboards32.com/</a>
> <a
> href="http://members.aol.com/chriscrylex/EUSQLite/eusql.html">http://members.aol.com/chriscrylex/EUSQLite/eusql.html</a>
>

new topic     » goto parent     » topic index » view message » categorize

7. Re: bug in position()

jacques deschênes wrote:
> 
> The bug that get_position() return the right line number event if its greater
> than 25 so position() should not crash when passing it parameters obtained
> from
> get_position() as shown in my exemple.
> 
> jacques
> 
> 
> Chris Burch wrote:
> > 
> > jacques deschênes wrote:
> > > 
> > > 
> > > Hi Robert,
> > > As windows consoles may have more than 25 lines, there is a bug with the
> > > actual implementation
> > > of position().
> > > If line is greater than 25 euphoria crash. (tested on windows xp pro)
> > > 
> > > exemple:
> > > }}}
<eucode>
> > > include graphics.e
> > > sequence pos
> > > pos = get_position()
> > > position(pos[1],pos[2]-1) -- crash if pos[1]>25
> > > </eucode>
{{{

> > > 
> > > regards,
> > > Jacques Deschênes
> > > 
> > > p.s. Folks forget about my previous message, I read message sequentially
> > > and don't
> > > check other's 
> > > reply before replying.
> > > 
> > 
> > Hi
> > 
> > I've never thought of this a bug, just a feature of the language. Some
> > screens have lines
> > > 25, and if you have set the screen to one of these modes, then you can
> > > write to >
> > 25. SCREEN_LINES tells you how long the screen is
> > 
> > SCREEN_LINES = vid_conf[VC_LINES]
> > SCREEN_COLS = vid_conf[VC_COLUMNS]
> > 
> > 
> > then just wrap position with a check for the length of the screen to prevent
> > crashes.
> > 
> > Please, any changes should not affect the abilty to write beyond 25 lines
> > 
> > Chris
> > 
> > <a
> > href="http://members.aol.com/chriscrylex/euphoria.htm">http://members.aol.com/chriscrylex/euphoria.htm</a>
> > <a href="http://uboard.proboards32.com/">http://uboard.proboards32.com/</a>
> > <a
> > href="http://members.aol.com/chriscrylex/EUSQLite/eusql.html">http://members.aol.com/chriscrylex/EUSQLite/eusql.html</a>
> >
> 

Hi

Yes, I realised that after I'd pressed the send now button, then ran out to take
my son to rugby etc etc

Chris


http://members.aol.com/chriscrylex/euphoria.htm
http://uboard.proboards32.com/
http://members.aol.com/chriscrylex/EUSQLite/eusql.html

new topic     » goto parent     » topic index » view message » categorize

8. Re: bug in position()

Robert Craig wrote:

> Robert Craig wrote:
>
>> jacques desch=EAnes wrote:
>>
>>> As windows consoles may have more than 25 lines, there is a bug with
>>> the actual implementation of position().
>>> If line is greater than 25 euphoria crash. (tested on windows xp pro)
>>>
>>> exemple:
>>> }}}
<eucode>
>>> include graphics.e
>>> sequence pos
>>> pos = get_position()
>>> position(pos[1],pos[2]-1) -- crash if pos[1]>25
>>> </eucode>
{{{

>>
>> Ok, thanks Jacques.
>> I duplicated the problem on my machine.
>> I'll fix it for the next release.
>> A couple of other people have reported similar
>> problems with consoles over 25 lines. It's not just 2.5,
>> but earlier releases too.

Just for the sake of completeness:
The problem does *not* exist on my Windows 98 machine.
Someone else reported to me the same problem under Win 2000 SP4.
I could duplicate it under Windows XP, using a console window with
25(!) lines, so not only consoles with over 25 lines are affected.

I used something like
pos = get_position()
position(pos[1], 1)


I don't have a Windows XP machine here right now, and unfortunately I
forgot to write down the error message, but as far as I recall it was
something like "Can't move cursor to line 27" or so.
So it seems to be a bug in get_position() rather than position().
pos[1] is provided by get_position(), which should always be an existing
line, shouldn't it?

> As a quick fix, try calling text_rows()
> in graphics.e. That seems to tell Euphoria about the larger number
> of lines, and stop it from giving a false error report. e.g.
>
> }}}
<eucode>
> include graphics.e
> sequence pos
>
> if text_rows(43) then
> end if
> pos = get_position()
> position(pos[1],pos[2]-1) -- crash if pos[1]>25
> </eucode>
{{{


That worked for me, too. Thanks!

> The ed editor does that, and it handles
> console windows with a large number of lines.

Regards,
   Juergen

--
Have you read a good program lately?

new topic     » goto parent     » topic index » view message » categorize

9. Re: bug in position()

Juergen Luethje wrote:
> 
> Robert Craig wrote:
> 
> > Robert Craig wrote:
> >
> >> jacques desch=EAnes wrote:
> >>
> >>> As windows consoles may have more than 25 lines, there is a bug with
> >>> the actual implementation of position().
> >>> If line is greater than 25 euphoria crash. (tested on windows xp pro)
> >>>
> >>> exemple:
> >>> }}}
<eucode>
> >>> include graphics.e
> >>> sequence pos
> >>> pos = get_position()
> >>> position(pos[1],pos[2]-1) -- crash if pos[1]>25
> >>> </eucode>
{{{

> >>
> >> Ok, thanks Jacques.
> >> I duplicated the problem on my machine.
> >> I'll fix it for the next release.
> >> A couple of other people have reported similar
> >> problems with consoles over 25 lines. It's not just 2.5,
> >> but earlier releases too.
> 
> Just for the sake of completeness:
> The problem does *not* exist on my Windows 98 machine.
> Someone else reported to me the same problem under Win 2000 SP4.
> I could duplicate it under Windows XP, using a console window with
> 25(!) lines, so not only consoles with over 25 lines are affected.
> 
> I used something like
> }}}
<eucode>
> pos = get_position()
> position(pos[1], 1)
> </eucode>
{{{

> 
> I don't have a Windows XP machine here right now, and unfortunately I
> forgot to write down the error message, but as far as I recall it was
> something like "Can't move cursor to line 27" or so.
> So it seems to be a bug in get_position() rather than position().
> pos[1] is provided by get_position(), which should always be an existing
> line, shouldn't it?
> 
> > As a quick fix, try calling text_rows()
> > in graphics.e. That seems to tell Euphoria about the larger number
> > of lines, and stop it from giving a false error report. e.g.
> >
> > }}}
<eucode>
> > include graphics.e
> > sequence pos
> >
> > if text_rows(43) then
> > end if
> > pos = get_position()
> > position(pos[1],pos[2]-1) -- crash if pos[1]>25
> > </eucode>
{{{

> 
> That worked for me, too. Thanks!
> 
> > The ed editor does that, and it handles
> > console windows with a large number of lines.
> 
> Regards,
>    Juergen
> 
> --
> Have you read a good program lately?
> 
> 

Hi there,


Another possibility might be to check first with video_config()...

s=video_config()
if s[VC_LINES]>=26 then
  position(26,1)
  puts(1,"26")
else
  scroll(1,1,25)
  position(25,1)
  puts(1,"25")
end if



Take care,
Al

And, good luck with your Euphoria programming!

My bumper sticker: "I brake for LED's"

new topic     » goto parent     » topic index » view message » categorize

10. Re: bug in position()

Juergen Luethje wrote:
> 
> Robert Craig wrote:
> 
> > Robert Craig wrote:
> >
> >> jacques desch=EAnes wrote:
> >>
> >>> As windows consoles may have more than 25 lines, there is a bug with
> >>> the actual implementation of position().
> >>> If line is greater than 25 euphoria crash. (tested on windows xp pro)
> >>>
> >>> exemple:
> >>> }}}
<eucode>
> >>> include graphics.e
> >>> sequence pos
> >>> pos = get_position()
> >>> position(pos[1],pos[2]-1) -- crash if pos[1]>25
> >>> </eucode>
{{{

> >>
> >> Ok, thanks Jacques.
> >> I duplicated the problem on my machine.
> >> I'll fix it for the next release.
> >> A couple of other people have reported similar
> >> problems with consoles over 25 lines. It's not just 2.5,
> >> but earlier releases too.
> 
> Just for the sake of completeness:
> The problem does *not* exist on my Windows 98 machine.
> Someone else reported to me the same problem under Win 2000 SP4.
> I could duplicate it under Windows XP, using a console window with
> 25(!) lines, so not only consoles with over 25 lines are affected.
> 
> I used something like
> }}}
<eucode>
> pos = get_position()
> position(pos[1], 1)
> </eucode>
{{{

> 
> I don't have a Windows XP machine here right now, and unfortunately I
> forgot to write down the error message, but as far as I recall it was
> something like "Can't move cursor to line 27" or so.
> So it seems to be a bug in get_position() rather than position().
> pos[1] is provided by get_position(), which should always be an existing
> line, shouldn't it?
> 
> > As a quick fix, try calling text_rows()
> > in graphics.e. That seems to tell Euphoria about the larger number
> > of lines, and stop it from giving a false error report. e.g.
> >
> > }}}
<eucode>
> > include graphics.e
> > sequence pos
> >
> > if text_rows(43) then
> > end if
> > pos = get_position()
> > position(pos[1],pos[2]-1) -- crash if pos[1]>25
> > </eucode>
{{{

> 
> That worked for me, too. Thanks!
> 
> > The ed editor does that, and it handles
> > console windows with a large number of lines.

Thanks. I'll keep all this information in mind 
when I debug it.

Regards,
   Rob Craig
   Rapid Deployment Software
   http://www.RapidEuphoria.com

new topic     » goto parent     » topic index » view message » categorize

Search



Quick Links

User menu

Not signed in.

Misc Menu