On Tue, 18 Nov 2008, Buck wrote:
Here's the scenario:
Start tn5250, sign on to System i.
Position cursor to row 7, column 11. This is the first character of the
member name column.
I think you have the column and row mixed up. The member name column
begins on row 11, column 7.
This is not happening to me.
I believe there's a missing 'break;' in
I believe that the code is correct and that there should not be a break
there. I'm pulling up some very old and dusty memories here, but I
believe it is coded that way because of the ordering of the fields as
tn5250 receives them from the host. What this function is trying to do is
find the previous field as defined by cursor progression which is
different than the field ordering as given tn5250 by the host. If there
is only one field on the screen than differentfieldfound will always be
zero and clearly we need to break out of the loop. Otherwise we want to
keep looping through the list of fields, which could be in any order.
Once we find the field which is the previous cursor progression field we
want to break. If we never find such a field, then we break when we loop
all the way back to the field we started on. Either way, we should never
get stuck in an infinite loop because the field list is a linked list that
points to itself so eventually the second case will always be true.
You do have a rather old version of the source. The most recent version
is 0.17.4 and that has been rock solid for me for a very long time now.
If after updating you still have this problem please report back.
if you want to understand why that is, there are many good books on
the design of operating systems. please pass them along to redmond
when you're done reading them :)
- Paul Davis on ardour-dev