Change os390 custom cppstdin script to use fgrep.

Grep appears to be limited to 2048 characters, and truncates
the output for cppstin.  Fgrep apparently doesn't have that limit.
Thanks to John Goodyear <johngood@us.ibm.com> for reporting this.
Disable gcc-style function attributes on z/OS.

John Goodyear <johngood@us.ibm.com> reports that the z/OS C compiler
supports the attribute keyword, but not exactly the same as gcc.
Instead of a "warning", the compiler emits an "INFORMATIONAL" message
that Configure fails to detect.  Until Configure is fixed, just disable
the attributes altogether.

John Goodyear
makedepend.SH: Comment out unnecessary code

This causes problems currently for z/OS.  But, since we don't know why
it was there, I'm leaving it in as a placeholder.
makedepend.SH: Retain '/**/' comments

These comments may actually be necessary.
makedepend.SH: Remove some unnecessary white space

Multi-line preprocessor directives are now joined into single lines.
This can create lines too long for the preprocessor to handle.  This
commit removes blanks adjoining comments that get deleted.  This makes
things somewhat less likely to exceed the limit.

This commit also fixes several [] which were meant to each match a tab
or a blank, but editors converted the tabs to blanks
makedepend.SH: White-space only

Align continuation backslashes
makedepend.SH: Split too long lines; properly join

I had thought that a continuation introduced a space.  But no,
a continuation can happen in the middle of a token.

And this splits lines that are getting very long to avoid preprocessor
limitations.
regcomp.c: EBCDIC fix
utf8.c: Improve debug message

This function was called with an empty string "" because that string was
not actually needed in the function, except to better identify the
source when there is an error.  So change to specify the actual source.
mktables: Use chr() instead of pack()

The input is the native code point, not the Unicode one, and so it is a
bug that pack(U) works.  The W format is what should be used, but I
think chr() is easier to read.
perlio: Fix to work with MVS Dataset
handy.h: Comments only

Removes obsolete comment, and adds text to make it easier to find
matching #else and #endif of a #if
handy.h: Need macro definition for normally non-compiled code

This section of code is compiled only when perl.h is not available, i.e.
for utility programs.  I periodically test that it still works, and this
time a macro was added to the other branch of the #if, but not this one.
This commit adds a trivial one to the missing area.
handy.h: Add missing macro

This section of code is normally not compiled, but when circumstances
call for it to be compiled, it may be missing the macro defined in this
commit, which is trivial on ASCII platforms, so just define it if
missing
Fix isASCII for EBCDIC

Prior to this commit isASCII on EBCDIC platforms was defined as the
isascii() libc function.  It turns out that this doesn't work properly.
It needed to be this way back when EBCDIC was bootstrapped onto the
target machine, but now, various header files are furnished with the
requisite definitions, so this is no longer necessary.

The problem with isascii() is that it is locale-dependent, unlike on
ASCII platforms.  This means that instead of getting a standard ASCII
definition, it returns whatever the underlying locale says, even if
there is no 'use locale' anywhere in the program.  Starting with this
commit, the isASCII definition now comes from the l1_char_class_tab.h
file which we know is accurate and not locale-dependent.

This header can be used in compilations of utility programs where perl.h
is not available.  For these, there are alternate, more complicated
definitions, should they be needed in those utility programs.  Several
of those definitions prior to this commit also used locale-sensitive
isfoo() functions.  The bulk of this commit refactors those definitions
to not use these functions as much as possible.  As noted in the
added comments in the code, the one remaining use of such a function is
only for the lesser-used control characters.  Likely these aren't used
in the utility programs.
regcomp.c: isASCII should be isASCII_uni

It doesn't effectively matter, but isACII_uni is the one that is
supposed to be used for UVs.
Fix ebcdic error of nostdio.h
EBCDIC doesn't have real UTF-8 locales.

At least on the system that we have tested on.  There are locales that
say they are UTF-8, but they're not; they're EBCDIC 1047.
charset_tools.pl: Fix changed function name

The function has changed names, but this file did not get updated to
reflect that.
t/re/regexp.t: Generalize for non-ASCII platforms

This adds code to the processing of the tests in t/re/re_tests to
automatically convert most character constants from unicode to native
character sets.  This allows most tests in t/re/re_tests to be run on
both platforms without change.  A later commit will add the capability
to skip individual tests if on the wrong platform, so those few tests
that this commit doesn't work for can be accommodated