> I figure the key I want is XK_bracketleft but I'm not sure how to output
> a character.  If I key the cent sign (copy/paste) I get
>    warning: multi-character character constant

Unfortunately, the cent sign is a very non-standard character.  It's not
even part of the basic 7-bit ASCII character set. For example, the Apple
//e that I used when I was younger didn't even have a cent sign...

When and if you get this working, there'll always be the chance for more
problems when you change fonts, upgrade X, or upgrade Fedora.

IMHO, the best solution is to stop using this character.  Use the dollar
sign... for fifty cents, use $0.50

Having said that, however, the EBCDIC CCSID 37 (default in the USA) has
hex character x'4A' set to the cent sign.  And ISO 8859-1 (based on a web
search) has the cent sign as x'A2'.  Assuming that the font you use is
100% compliant with ISO 8859-1 (which might be a really big assumption!)
both x5250 and xt5250 should output the sign properly without changes.

The character mapping is done by tables in teh file called transmaps.h  If
you look at the table called ibm037_to_iso_8859_1 it shows the mappings...
for example, since x'4A' is decimal 74 you can look for the 74th entry in
this table (the comments on the right-hand side help you do that).  It
shows that 74 is mapped to 162.  (which is x'A2')

To verify that it was functioning properly, I wrote the following trivial
RPG program:

     D char            s              1A   inz(x'4A')
     c                   dsply                   char
     c                   eval      *inlr = *on

When I run this program, it does show a cent sign on my display (FreeBSD
5.2.1 with XFree86 4.3.0, using the 'fixed' font)

I tested this with both x5250 and xt5250, and both display the cent sign

At home I'm running X.org rather than XFree86, so I'll check it there

If yours is different and you know the proper mapping, you can change it
in transmaps.h, and recompile it to make it work.

For keyboard mapping, you'll need to change key.c to return the ASCII code
( NOT THE EBCDIC CODE! ) so that when lib5250 maps it from ASCII to
EBCDIC, it'll translate to the right thing for the iSeries to understand.

For the sake of testing, you should be able to simply "return 162" but of
course, if you change the mapping in transmaps, you need to use whichever
character you changed it to.

Good Luck

As an Amazon Associate we earn from qualifying purchases.

This thread ...


Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2022 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.