Here's a patch that should fix it. It's made against the 0.17.1 CVS version that
I checked out today.
Considering my checkered history with patches <g>, if the patch isn't made
correctly, I'd appreciate any instruction anyone wants to give. I'm an AS/400
programmer, not a Unix guy (as is probably obvious :-)
I'll send the same patch for 0.16.1 in a separate msg.
--Dave
====================================================================
diff -ur tn5250-0.17.1.old/ChangeLog tn5250-0.17.1/ChangeLog
--- tn5250-0.17.1.old/ChangeLog Thu Dec 28 23:10:18 2000
+++ tn5250-0.17.1/ChangeLog Sun Dec 31 14:13:09 2000
@@ -1,3 +1,7 @@
+2000-12-31 Dave McKenzie <[EMAIL PROTECTED]>
+- Another cursor bug: in a window, cursor was positioned at row 1, col 1
+ of window instead of at first input field.
+
2000-12-27 Rich Duzenbury <[EMAIL PROTECTED]>
- Added Experimental scs2ps (SCS to Postscript) program.
- call by: cat myscsfile | scs2ps
diff -ur tn5250-0.17.1.old/src/session.c tn5250-0.17.1/src/session.c
--- tn5250-0.17.1.old/src/session.c Wed Dec 6 11:30:39 2000
+++ tn5250-0.17.1/src/session.c Sun Dec 31 14:11:06 2000
@@ -1341,6 +1341,7 @@
TN5250_LOG (("StartOfHeader: entered.\n"));
tn5250_dbuffer_clear_table(tn5250_display_dbuffer(This->display));
+ tn5250_display_clear_pending_insert(This->display);
tn5250_display_indicator_set(This->display, TN5250_DISPLAY_IND_X_SYSTEM);
n = tn5250_record_get_byte (This->record);
diff -ur tn5250-0.17.1.old/src/wtd.c tn5250-0.17.1/src/wtd.c
--- tn5250-0.17.1.old/src/wtd.c Wed Dec 6 11:30:39 2000
+++ tn5250-0.17.1/src/wtd.c Sun Dec 31 14:11:37 2000
@@ -165,15 +165,6 @@
tn5250_wtd_context_putc (This, 0x00); /* CC1 */
tn5250_wtd_context_putc (This, 0x00); /* CC2 */
- /*
- Set the insert-cursor address. This is necessary to ensure that
- we return to same field we were in before the save_screen.
- */
-
- tn5250_wtd_context_putc (This, IC);
- tn5250_wtd_context_putc (This, This->y);
- tn5250_wtd_context_putc (This, This->x);
-
/* If we have header data, start with a SOH order. */
if (This->dst->header_length != 0) {
int i;
@@ -182,6 +173,14 @@
for (i = 0; i < This->dst->header_length; i++)
tn5250_wtd_context_putc (This, This->dst->header_data[i]);
}
+ /*
+ Set the insert-cursor address. This is necessary to ensure that
+ we return to same field we were in before the save_screen.
+ */
+
+ tn5250_wtd_context_putc (This, IC);
+ tn5250_wtd_context_putc (This, This->y);
+ tn5250_wtd_context_putc (This, This->x);
for (This->y = 0; This->y < tn5250_dbuffer_height(This->dst);
=================================================================
Sean Porterfield wrote:
> The cursor is now in the right place in DFU!
>
> It still doesn't position correctly in at least one screen of the ERP
> software we use. The cursor positions to the upper left of a window
> instead of the first input capable field. There is an F13 toggle that
> changes some of the text on the window (may even be a different record
> of the dspf) and then the cursor goes/stays where it is supposed to.
> It's just the first time that it doesn't work.
>
> I can send a trace file if anyone wants it.
+---
| This is the LINUX5250 Mailing List!
| To submit a new message, send your mail to [EMAIL PROTECTED]
| To subscribe to this list send email to [EMAIL PROTECTED]
| To unsubscribe from this list send email to [EMAIL PROTECTED]
| Questions should be directed to the list owner/operator: [EMAIL PROTECTED]
+---