This looks to be a bug in tn5250. The auto-enter request is processed
before the field is made negative.
Attached is a patch which solves the problem for me. This patch appears
to work fine when applied against both 0.16.1 and the development sources.
To apply the patch:
cd tn5250 (or cd tn5250-0.16.1)
patch < /path/to/field_minus_auto_enter.patch
Then build & install tn5250 as you normally would.
Jason... can we apply this to CVS? (assuming it looks okay to you)
I'll CC: you guys directly, since sometimes my messages with attachments
don't seem to work across the mailing list...
On Tue, 16 Jan 2001, Juan Rivas wrote:
> Thanks, when my work is finished, I will send my es5250.map file.
>
> I change tn5250 options and es5250.map file in my linux box:
> +underscores, Field+, Intro, Dup, F21, F22, F23 and F24 work fine.
>
> When I use Field- in signed numeric fields, for example, with the
> following: 1 FieldMinus -> appear 1- in field entry. I press Intro
> and work fine, in database write -> 1-. But if is the last register
> field with automatized Intro (I don't press Intro Key, is the RPG
> program), write in data base -> 1.
>
> Any idea?
>
>
diff -ur ../orig/ChangeLog ./ChangeLog
--- ../orig/ChangeLog Fri Jan 5 08:25:29 2001
+++ ./ChangeLog Tue Jan 16 12:52:06 2001
@@ -1,3 +1,7 @@
+2001-01-16 Scott Klement <[EMAIL PROTECTED]>
+- Fixed bug where fields were not being made negative when field minus was
+ pressed on an auto-enter field.
+
2001-01-04 Scott Klement <[EMAIL PROTECTED]>
- Added xterm font support requested by Frank Richter
- to use: set the font_80 and font_132 config options in ~/.tn5250rc
diff -ur ../orig/src/display.c ./src/display.c
--- ../orig/src/display.c Wed Dec 6 13:30:38 2000
+++ ./src/display.c Tue Jan 16 12:49:16 2001
@@ -1137,8 +1137,6 @@
return;
}
- tn5250_display_kf_field_exit(This);
-
/* For numeric only fields, we shift the data one character to the
* left and insert an ebcdic '}' in the rightmost position. For
* signed numeric fields, we change the sign position to a '-'. */
@@ -1155,6 +1153,8 @@
}
} else
data[tn5250_field_length (field) - 1] = tn5250_char_map_to_remote (This->map,
'-');
+
+ tn5250_display_kf_field_exit(This);
}
/****f* lib5250/tn5250_display_do_aidkey