1. [ANN] win32lib update - call for testers

I just uploaded to RDS an updated version of win32lib v0.70.1 that apparently
fixes the two main standing bugs reported to date: locked shifts on keyboard and
inadequately huge print size when setting the printer font. Judith's IDE appears
to work properly with this release.

I also incorporated Shawn Pringle's patch he recently posted. However, I changed
WIN_XP to WIN_2000, since MSDN states that GetDefaultPrinter() is supported from
Win2K onwards. If anyone with Windows 2000 encounters a problem, I'll revert to
the original. I only have XP available.

I don't know how long it will take for the updated archive to appear in the
recent contribution list, so perhaps check for the update notice before
downloading again. Beware of your browser cache possibly needing a refresh, as
usual.

I consider this to be a beta release. This post is a call for as many people as
possible to test the library and report any bugs they find. The preferred way is
to use the bug tracker on Sourceforge. Otherwise, you can email oedoc hat free
doubt fr: that's my private email address.
The project home page is at http://sourceforge.net/projects/win32libex

The only standing bug is the one CK reported. I am still waiting from input on
his .prj file. I don't even know whether it is a win32lib or IDE bug.

I still didn't update the SVN repository, so v0.70.1 or .2 there doesn't have
the fixes yet. This is expected to be done within the next 36 hours.

When some time has passed without unfixed bugs, then an official release will be
in order. I'd consider a 4 week period as adequate.

CChris

new topic     » topic index » view message » categorize

2. Re: [ANN] win32lib update - call for testers

CChris wrote:
> 
> The only standing bug is the one CK reported.

I will test this latest revision with my
prj files and let you know what happens.

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

3. Re: [ANN] win32lib update - call for testers

There is a problem.

I'm using the latest Win32Lib and version 1.0.0 (May 23, 2007) of the IDE.
In the .prj file, the bttn_Prepaid is defined (and appears on the Form Design
window, but it does not get inserted into the .exw file when saved/run.

I'll try to get a minimal example and post the prj file... give me some time. :)

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

4. Re: [ANN] win32lib update - call for testers

c.k.lester wrote:
> 
> I'm using the latest Win32Lib and version 1.0.0 (May 23, 2007) of the IDE.

I see that the IDE is at 1.0.2... I'll try that version and let you know.

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

5. Re: [ANN] win32lib update - call for testers

c.k.lester wrote:
> 
> There is a problem.
> 
> I'm using the latest Win32Lib and version 1.0.0 (May 23, 2007) of the IDE.
> In the .prj file, the bttn_Prepaid is defined (and appears on the Form Design
> window, but it does not get inserted into the .exw file when saved/run.
> 
> I'll try to get a minimal example and post the prj file... give me some time.
> :)

Make sure you update the bug report:
http://sourceforge.net/tracker/index.php?func=detail&aid=1793556&group_id=9153&atid=109153

...and upload the .prj file there, too, so we won't lose it again.

Matt

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

6. Re: [ANN] win32lib update - call for testers

Matt Lewis wrote:
> c.k.lester wrote:
> > There is a problem.
> > I'm using the latest Win32Lib and version 1.0.0 (May 23, 2007) of the IDE.
> > In the .prj file, the bttn_Prepaid is defined (and appears on the Form
> > Design
> > window, but it does not get inserted into the .exw file when saved/run.
> > I'll try to get a minimal example and post the prj file... give me some
> > time.
> > :)
> Make sure you update the bug report:
> <a
> href="http://sourceforge.net/tracker/index.php?func=detail&aid=1793556&group_id=9153&atid=109153">http://sourceforge.net/tracker/index.php?func=detail&aid=1793556&group_id=9153&atid=109153</a>
> 
> ...and upload the .prj file there, too, so we won't lose it again.

I've got sample prj files! I don't see a way to upload the files to the
SF repository.

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

7. Re: [ANN] win32lib update - call for testers

CChris wrote:

> This post is a call for as many people
> as possible to test the library and report any bugs they find. The preferred
> way is to use the bug tracker on Sourceforge.
> The project home page is at <a
> href="http://sourceforge.net/projects/win32libex">http://sourceforge.net/projects/win32libex</a>

> CChris

Hi.

I've just dropped what I believe to be bug report at sourceforge regarding
paste issues with 70.1 but had some difficulty navigating the site and didn't
fancy registering.

Anyway, it's there in its raw state. Any help would be appreciated.

Regards,

Bob

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

8. Re: [ANN] win32lib update - call for testers

Bob Thompson wrote:
> 
> CChris wrote:
> 
> > This post is a call for as many people
> > as possible to test the library and report any bugs they find. The preferred
> > way is to use the bug tracker on Sourceforge.
> > The project home page is at <a
> > href="http://sourceforge.net/projects/win32libex">http://sourceforge.net/projects/win32libex</a>
> 
> > CChris
> 
> Hi.
> 
> I've just dropped what I believe to be bug report at sourceforge regarding
> paste issues with 70.1 but had some difficulty navigating the site and didn't
> fancy registering.
> 
> Anyway, it's there in its raw state. Any help would be appreciated.
> 
> Regards,
> 
> Bob

The bug is there, and you may have got my comment by email.
Text handling routines for RichEdit controls have been modified somewhat to
accommodate RichEdit v3.0 (remember, the controls would hardly work on XP with
0.60).
Probably the lib is using a non extended WM_ or EM_ message at some point - a
remainder that the message architecture is still largely the one of the 16-bit
win.exe -. I'll see if I can post a fix tonight, ie 12-15h from now, else this
weekend.

CChris

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

9. Re: [ANN] win32lib update - call for testers

Bob Thompson wrote:
> 
> CChris wrote:
> 
> > This post is a call for as many people
> > as possible to test the library and report any bugs they find. The preferred
> > way is to use the bug tracker on Sourceforge.
> > The project home page is at <a
> > href="http://sourceforge.net/projects/win32libex">http://sourceforge.net/projects/win32libex</a>
> 
> > CChris
> 
> Hi.
> 
> I've just dropped what I believe to be bug report at sourceforge regarding
> paste issues with 70.1 but had some difficulty navigating the site and didn't
> fancy registering.
> 
> Anyway, it's there in its raw state. Any help would be appreciated.
> 
> Regards,
> 
> Bob

Does getText() work as you'd expect, or is it only pasting that exhibits the
problem?

CChris

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

10. Re: [ANN] win32lib update - call for testers

Bob Thompson wrote:
> 
> CChris wrote:
> 
> > This post is a call for as many people
> > as possible to test the library and report any bugs they find. The preferred
> > way is to use the bug tracker on Sourceforge.
> > The project home page is at <a
> > href="http://sourceforge.net/projects/win32libex">http://sourceforge.net/projects/win32libex</a>
> 
> > CChris
> 
> Hi.
> 
> I've just dropped what I believe to be bug report at sourceforge regarding
> paste issues with 70.1 but had some difficulty navigating the site and didn't
> fancy registering.
> 
> Anyway, it's there in its raw state. Any help would be appreciated.
> 
> Regards,
> 
> Bob

I think I got it. Locate the getData()  function in win32lib.ew and replace the
starting if branch like this:
if ctrl_Type[ id ] = RichEdit then
        -- return selection
        buffer = w32to_memory(0,ID_CHARRANGE, {0, -1})
        VOID = sendMessage( id, EM_EXGETSEL, 0, buffer )
        result = w32fetch( buffer, CHARRANGE_cpMax ) -
                    w32fetch( buffer, CHARRANGE_cpMin )
        w32release_mem(buffer)

        if result > 0 then
            if equal(WC_RICHEDIT,WC_RICHEDIT50) then
buffer = w32acquire_mem(0, 2*result + 2 ) --  add 2 for '/0'
                character.
                iLength = sendMessage( id, EM_GETSELTEXT, 0, buffer )
                text=repeat(0,iLength)
                lmh=buffer
                for i=1 to iLength do
                    text[i]=peek(lmh)+256*peek(lmh+1)
                    lmh+=2
                end for
            else
buffer = w32acquire_mem(0, result + 1 ) --  add 1 for '/0'
                character.
                iLength = sendMessage( id, EM_GETSELTEXT, 0, buffer )
                text = peek( {buffer , iLength})
            end if
            w32release_mem( buffer )
        else
            iLength=getCharacterCount(id,0)
            buffer=w32acquire_mem(0,iLength)
            lmh=w32to_memory(0,ID_GETTEXTEX, {iLength,GT_DEFAULT,CP_ACP,0,0})
            iLength=sendMessage(id,EM_GETTEXTEX,lmh,buffer)
            text=peek({buffer,iLength})
        end if


So it wasn't a wrong messahe, but a wrong buffer length with the newer RE
controls.
Please report whether this fixes the issue for you. I'll update the bug
accordingly.

CChris

Note: all fixes are now going in the 70.2 version, which discontinues support
for the onXXX syntax. I'll upload it when a couple more bugs are reported and
fixed.

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

11. Re: [ANN] win32lib update - call for testers

> CChris wrote:

> I think I got it. Locate the getData()  function in win32lib.ew and replace
> the starting if branch like this:

<snip>

This is part of ex.err from Win32lib.ew without your modification. 
I'm still getting much the same error with your modification using the example
I submitted. Crashing still initiates with the paste event.

Regards,

Bob

C:\EUPHORIA\WIN32LIB\INCLUDE\w32dll.ew:212 in function w32Func() 
A machine-level exception occurred during execution of this statement 
    funcid = 137
    parms = {-64043,853026,770,0,0}
    lRC = <no value>
    libfunc = <no value>
    lFuncDef = 38'&'
    linked = <no value>
    memset = 0
    i = 5

... called from C:\EUPHORIA\WIN32LIB\INCLUDE\Win32lib.ew:23590 in function
DefProcessing()
    id = 18
    pSource = -9987
    hWnd = 853026
    iMsg = 770
    wParam = 0
    lParam = 0
    lResult = <no value>

... called from C:\EUPHORIA\WIN32LIB\INCLUDE\Win32lib.ew:23684 in function
MessageProcessor()
    pSource = -9987
    hWnd = 853026
    iMsg = 770
    wParam = 0
    lParam = 0
    id = 18
    lHandledEvent = 0
    lTemp = 42'*'
    result = <no value>
    lUserReturn = <no value>

... called from C:\EUPHORIA\WIN32LIB\INCLUDE\Win32lib.ew:23744 in function
SubProc()
    hWnd = 853026
    iMsg = 770
    wParam = 0
    lParam = 0

^^^ call-back from Windows

... called from C:\EUPHORIA\WIN32LIB\INCLUDE\Win32lib.ew:3827 in function
sendMessage()
    id = 18
    pCmd = 770
    wParm = 0
    lParm = 0
    memset = 0
    lRetVal = <no value>

... called from C:\EUPHORIA\WIN32LIB\INCLUDE\Win32lib.ew:16644 in procedure
paste()
    id = 18

... called from C:\EUPHORIA\BIN\z_window.exw:20 in procedure Paste()  
    self = 14
    event = 4
    params = {}

... called from C:\EUPHORIA\WIN32LIB\INCLUDE\Win32lib.ew:4175 in function
invokeHandler()
    id = 14
    event = 4
    params = {}
    lRoutines = {
                  {152}
                }
    lStates = {
                {1}
              }
    lCallType = 1
    lPos = <no value>
    lNotify = <no value>
    lRecvr = <no value>
    i = 1
    j = 1
    i = <no value>

... called from C:\EUPHORIA\WIN32LIB\INCLUDE\Win32lib.ew:22369 in function
fDoCommand()
    id = 14
    hWnd = 4522872
    iMsg = 273
    wParam = 14
    lParam = 0
    pReturn = -2761
    lRC = {-9987}
    lChildId = <no value>
    lParent = <no value>

... called from C:\EUPHORIA\WIN32LIB\INCLUDE\Win32lib.ew:23687 in function
MessageProcessor()
    pSource = -2761
    hWnd = 4522872
    iMsg = 273
    wParam = 14
    lParam = 0
    id = 3
    lHandledEvent = 16
    lTemp = 1
    result = <no value>
    lUserReturn = <no value>

... called from C:\EUPHORIA\WIN32LIB\INCLUDE\Win32lib.ew:23738 in function
WndProc()
    hWnd = 4522872
    iMsg = 273
    wParam = 14
    lParam = 0

^^^ call-back from Windows

... called from C:\EUPHORIA\WIN32LIB\INCLUDE\w32dll.ew:280 in procedure
w32Proc()
    funcid = 101'e'
    parms = {955700}
    libfunc = <no value>
    lFuncDef = 52'4'
    memset = 0
    i = 1

... called from C:\EUPHORIA\WIN32LIB\INCLUDE\Win32lib.ew:24254 in procedure
eventLoop()
    pData = {}
    temp = <no value>
    msg = 955700
    getRC = 1
    inc = <no value>
    el = 1
    lTock = 0

... called from C:\EUPHORIA\WIN32LIB\INCLUDE\Win32lib.ew:24473 in procedure
WinMain()
    id = 3
    style = 0
    lInitFocus = -1
    lRtnId = <no value>
    lEventName = <no value>
    lInitView = <no value>

... called from C:\EUPHORIA\BIN\z_window.exw:47

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

12. Re: [ANN] win32lib update - call for testers

Bob Thompson wrote:
> 
> > CChris wrote:
> 
> > I think I got it. Locate the getData()  function in win32lib.ew and replace
> > the starting if branch like this:
> 
> <snip>
> 
> This is part of ex.err from Win32lib.ew without your modification. 
> I'm still getting much the same error with your modification using the example
> I submitted. Crashing still initiates with the paste event.
> 
> Regards,
> 
> Bob
> 
> C:\EUPHORIA\WIN32LIB\INCLUDE\w32dll.ew:212 in function w32Func() 
> A machine-level exception occurred during execution of this statement 
>     funcid = 137
>     parms = {-64043,853026,770,0,0}
>     lRC = <no value>
>     libfunc = <no value>
>     lFuncDef = 38'&'
>     linked = <no value>
>     memset = 0
>     i = 5
> 
> ... called from C:\EUPHORIA\WIN32LIB\INCLUDE\Win32lib.ew:23590 in function
> DefProcessing()
>  
>     id = 18
>     pSource = -9987
>     hWnd = 853026
>     iMsg = 770
>     wParam = 0
>     lParam = 0
>     lResult = <no value>
> 
> ... called from C:\EUPHORIA\WIN32LIB\INCLUDE\Win32lib.ew:23684 in function
> MessageProcessor()
>  
>     pSource = -9987
>     hWnd = 853026
>     iMsg = 770
>     wParam = 0
>     lParam = 0
>     id = 18
>     lHandledEvent = 0
>     lTemp = 42'*'
>     result = <no value>
>     lUserReturn = <no value>
> 
> ... called from C:\EUPHORIA\WIN32LIB\INCLUDE\Win32lib.ew:23744 in function
> SubProc()
>  
>     hWnd = 853026
>     iMsg = 770
>     wParam = 0
>     lParam = 0
> 
> ^^^ call-back from Windows
> 
> ... called from C:\EUPHORIA\WIN32LIB\INCLUDE\Win32lib.ew:3827 in function
> sendMessage()
>  
>     id = 18
>     pCmd = 770
>     wParm = 0
>     lParm = 0
>     memset = 0
>     lRetVal = <no value>
> 
> ... called from C:\EUPHORIA\WIN32LIB\INCLUDE\Win32lib.ew:16644 in procedure
> paste()  
>     id = 18
> 
> ... called from C:\EUPHORIA\BIN\z_window.exw:20 in procedure Paste()  
>     self = 14
>     event = 4
>     params = {}
> 
> ... called from C:\EUPHORIA\WIN32LIB\INCLUDE\Win32lib.ew:4175 in function
> invokeHandler()
>  
>     id = 14
>     event = 4
>     params = {}
>     lRoutines = {
>                   {152}
>                 }
>     lStates = {
>                 {1}
>               }
>     lCallType = 1
>     lPos = <no value>
>     lNotify = <no value>
>     lRecvr = <no value>
>     i = 1
>     j = 1
>     i = <no value>
> 
> ... called from C:\EUPHORIA\WIN32LIB\INCLUDE\Win32lib.ew:22369 in function
> fDoCommand()
>  
>     id = 14
>     hWnd = 4522872
>     iMsg = 273
>     wParam = 14
>     lParam = 0
>     pReturn = -2761
>     lRC = {-9987}
>     lChildId = <no value>
>     lParent = <no value>
> 
> ... called from C:\EUPHORIA\WIN32LIB\INCLUDE\Win32lib.ew:23687 in function
> MessageProcessor()
>  
>     pSource = -2761
>     hWnd = 4522872
>     iMsg = 273
>     wParam = 14
>     lParam = 0
>     id = 3
>     lHandledEvent = 16
>     lTemp = 1
>     result = <no value>
>     lUserReturn = <no value>
> 
> ... called from C:\EUPHORIA\WIN32LIB\INCLUDE\Win32lib.ew:23738 in function
> WndProc()
>  
>     hWnd = 4522872
>     iMsg = 273
>     wParam = 14
>     lParam = 0
> 
> ^^^ call-back from Windows
> 
> ... called from C:\EUPHORIA\WIN32LIB\INCLUDE\w32dll.ew:280 in procedure
> w32Proc()
>  
>     funcid = 101'e'
>     parms = {955700}
>     libfunc = <no value>
>     lFuncDef = 52'4'
>     memset = 0
>     i = 1
> 
> ... called from C:\EUPHORIA\WIN32LIB\INCLUDE\Win32lib.ew:24254 in procedure
> eventLoop()  
>     pData = {}
>     temp = <no value>
>     msg = 955700
>     getRC = 1
>     inc = <no value>
>     el = 1
>     lTock = 0
> 
> ... called from C:\EUPHORIA\WIN32LIB\INCLUDE\Win32lib.ew:24473 in procedure
> WinMain()  
>     id = 3
>     style = 0
>     lInitFocus = -1
>     lRtnId = <no value>
>     lEventName = <no value>
>     lInitView = <no value>
> 
> ... called from C:\EUPHORIA\BIN\z_window.exw:47

Strange, as I can run your test file with n=10000000 without a crash... I'll
check this further, but there is hardly a clue abou the origin of he problem.
Emailing you the whole distribution, it may help.

CChris

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

13. Re: [ANN] win32lib update - call for testers

> Strange, as I can run your test file with n=10000000 without a crash... I'll
> check this further, but there is hardly a clue abou the origin of he problem.
> Emailing you the whole distribution, it may help.
> 
> CChris

OK, the original demo still crashes with 70.2.

However, I think the problem lies with setIndex(edit, {1, 0}). If I replace this
with
setIndex(edit, {1, length(buffer) +1}) it works fine. 

Modified test programme below;

Regards,

Bob

include Win32lib.ew
without warning

constant win = createEx(Window, "Demo", 0, 20, 20, 400, 280, 0, 0)
constant edit = createEx(RichEdit, "", win, 0, 0, w32Edge, w32Edge, 0, 0)
constant Menu_Edit           = createEx(Menu,     "Menu",        win,       0,
1, 0, 0, 0, 0)
constant MenuItem_Cut        = createEx(MenuItem, "Cu&t",        Menu_Edit, 0,
2, 0, 0, 0, 0)
constant MenuItem_Paste      = createEx(MenuItem, "&Paste",      Menu_Edit, 0,
3, 0, 0, 0, 0)
constant MenuItem_Delete     = createEx(MenuItem, "&Delete",     Menu_Edit, 0,
4, 0, 0, 0, 0)
constant MenuItem_Select_All = createEx(MenuItem, "Select&All",  Menu_Edit, 0,
5, 0, 0, 0, 0)
--===================================

sequence buffer

--===================================
--Cut
procedure Cut(atom self, atom event, sequence params)
cut(edit)
end procedure
setHandler(MenuItem_Cut, w32HClick, routine_id("Cut"))
--===================================
--Paste
procedure Paste(atom self, atom event, sequence params)
paste(edit)
end procedure
setHandler(MenuItem_Paste, w32HClick, routine_id("Paste"))
--===================================
--Delete
procedure Delete(atom self, atom event, sequence params)
clear(edit)
end procedure
setHandler(MenuItem_Delete, w32HClick, routine_id("Delete"))
--===================================
--Select All
procedure Select_All(atom self, atom event, sequence params)

--setIndex(edit, {1, 0})--crashes
setIndex(edit, {1, length(buffer) +1})--OK

end procedure
setHandler(MenuItem_Select_All, w32HClick, routine_id("Select_All"))
--===================================

constant n = 5000000

buffer = repeat('a', n) & repeat('z', n)
setText(edit, buffer)

WinMain(win, Normal)

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

14. Re: [ANN] win32lib update - call for testers

Bob Thompson wrote:
> 
>  
> > Strange, as I can run your test file with n=10000000 without a crash... I'll
> > check this further, but there is hardly a clue abou the origin of he
> > problem.
> > Emailing you the whole distribution, it may help.
> > 
> > CChris
> 
> OK, the original demo still crashes with 70.2.
> 
> However, I think the problem lies with setIndex(edit, {1, 0}). If I replace
> this with
> setIndex(edit, {1, length(buffer) +1}) it works fine. 
> 
> Modified test programme below;
> 
> Regards,
> 
> Bob
> 
> include Win32lib.ew
> without warning
> 
> constant win = createEx(Window, "Demo", 0, 20, 20, 400, 280, 0, 0)
> constant edit = createEx(RichEdit, "", win, 0, 0, w32Edge, w32Edge, 0, 0)
> constant Menu_Edit           = createEx(Menu,     "Menu",        win,      
> 0, 1, 0, 0, 0, 0)
> constant MenuItem_Cut        = createEx(MenuItem, "Cu&t",        Menu_Edit,
> 0, 2, 0, 0, 0, 0)
> constant MenuItem_Paste      = createEx(MenuItem, "&Paste",      Menu_Edit,
> 0, 3, 0, 0, 0, 0)
> constant MenuItem_Delete     = createEx(MenuItem, "&Delete",     Menu_Edit,
> 0, 4, 0, 0, 0, 0)
> constant MenuItem_Select_All = createEx(MenuItem, "Select&All",  Menu_Edit,
> 0, 5, 0, 0, 0, 0)
> --===================================
> 
> sequence buffer
> 
> --===================================
> --Cut
> procedure Cut(atom self, atom event, sequence params)
> cut(edit)
> end procedure
> setHandler(MenuItem_Cut, w32HClick, routine_id("Cut"))
> --===================================
> --Paste
> procedure Paste(atom self, atom event, sequence params)
> paste(edit)
> end procedure
> setHandler(MenuItem_Paste, w32HClick, routine_id("Paste"))
> --===================================
> --Delete
> procedure Delete(atom self, atom event, sequence params)
> clear(edit)
> end procedure
> setHandler(MenuItem_Delete, w32HClick, routine_id("Delete"))
> --===================================
> --Select All
> procedure Select_All(atom self, atom event, sequence params)
> 
> --setIndex(edit, {1, 0})--crashes
> setIndex(edit, {1, length(buffer) +1})--OK
> 
> end procedure
> setHandler(MenuItem_Select_All, w32HClick, routine_id("Select_All"))
> --===================================
> 
> constant n = 5000000
> 
> buffer = repeat('a', n) & repeat('z', n)
> setText(edit, buffer)
> 
> WinMain(win, Normal)

Oh I see. I'll look into it this week.

CChris

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

Search



Quick Links

User menu

Not signed in.

Misc Menu