BDS - 3.55.01.40 Genero 2.40.03
If no arguments are passed to a program, but the program uses code akin to:
LET l_char = ARG_VAL(1)
The value in l_char appears to differ between BDS and Genero. In Genero, l_char seems to be NULL, where in BDS l_char would appear to be blank. This then obviously affects subsequent comparisons.
WHENEVER ANY ERROR CONTINUE
INITIALIZE l_char TO NULL
LET l_char = ARG_VAL(1)
IF l_char = 'A' THEN
DISPLAY 'Char (',l_char,') is A'
ELSE
DISPLAY 'Char (',l_char,') is NOT A'
END IF
IF l_char != 'A' THEN
DISPLAY 'Char (',l_char,') is NOT A'
ELSE
DISPLAY 'Char (',l_char,') is A' -- Assumed!
END IF
IF l_char IS NULL THEN
DISPLAY 'Char Is NULL'
ELSE
IF l_char = " " THEN
DISPLAY 'Char Is Space'
ELSE
DISPLAY 'No Idea What Char Is, But It Is Not NULL'
END IF
END IF
Typically, the code in this migration performed the tests like the first two - ie compared the argument variable to be equal or not equal to a set value and ignored null.