[libpng15] Fix for the preprocessor of the Intel C compiler. The preprocessor

adjacent @ signs with a space; this changes the concatentation
from @@@ to PNG_JOIN; that should work with all compiler
preprocessors.
diff --git a/ANNOUNCE b/ANNOUNCE
index 31e1cbb..4c4108a 100644
--- a/ANNOUNCE
+++ b/ANNOUNCE
@@ -33,6 +33,10 @@
     of a png_struct or png_info failed. This would probably have led to a
     crash.  The pngmem.c implementation of png_malloc() included a cast
     to png_size_t which would fail on large allocations on 16-bit systems.
+  Fix for the preprocessor of the Intel C compiler. The preprocessor
+    splits adjacent @ signs with a space; this changes the concatentation
+    token from @@@ to PNG_JOIN; that should work with all compiler
+    preprocessors.
 
 Send comments/corrections/commendations to png-mng-implement at lists.sf.net:
 (subscription required; visit
diff --git a/CHANGES b/CHANGES
index cc2ebea..07bc574 100644
--- a/CHANGES
+++ b/CHANGES
@@ -3676,6 +3676,10 @@
     of a png_struct or png_info failed. This would probably have led to a
     crash.  The pngmem.c implementation of png_malloc() included a cast
     to png_size_t which would fail on large allocations on 16-bit systems.
+  Fix for the preprocessor of the Intel C compiler. The preprocessor
+    splits adjacent @ signs with a space; this changes the concatentation
+    token from @@@ to PNG_JOIN; that should work with all compiler
+    preprocessors.
 
 Send comments/corrections/commendations to png-mng-implement at lists.sf.net
 (subscription required; visit
diff --git a/Makefile.am b/Makefile.am
index b5b0789..ab92aa7 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -142,9 +142,9 @@
 	echo '#include "$<"' >dfn.c
 	$(DFNCPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) @LIBPNG_DEFINES@\
 	    $(CPPFLAGS) $(SYMBOL_CFLAGS) dfn.c > dfn1.out
-	$(SED) -n -e 's|^.*PNG_DEFN_MAGIC-\(.*\)-PNG_DEFN_END.*$$|\1|p'\
+	$(SED) -n -e 's|^.*PNG_DEFN_MAGIC *-\(.*\)- *PNG_DEFN_END.*$$|\1|p'\
 	    dfn1.out >dfn2.out
-	$(SED) -e 's| *@@@ *||g' -e 's| *$$||' dfn2.out >dfn3.out
+	$(SED) -e 's| *PNG_JOIN *||g' -e 's| *$$||' dfn2.out >dfn3.out
 	rm -f dfn.c dfn[12].out
 	mv dfn3.out $@
 
diff --git a/Makefile.in b/Makefile.in
index 093b879..993d896 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -1340,9 +1340,9 @@
 	echo '#include "$<"' >dfn.c
 	$(DFNCPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) @LIBPNG_DEFINES@\
 	    $(CPPFLAGS) $(SYMBOL_CFLAGS) dfn.c > dfn1.out
-	$(SED) -n -e 's|^.*PNG_DEFN_MAGIC-\(.*\)-PNG_DEFN_END.*$$|\1|p'\
+	$(SED) -n -e 's|^.*PNG_DEFN_MAGIC *-\(.*\)- *PNG_DEFN_END.*$$|\1|p'\
 	    dfn1.out >dfn2.out
-	$(SED) -e 's| *@@@ *||g' -e 's| *$$||' dfn2.out >dfn3.out
+	$(SED) -e 's| *PNG_JOIN *||g' -e 's| *$$||' dfn2.out >dfn3.out
 	rm -f dfn.c dfn[12].out
 	mv dfn3.out $@
 
diff --git a/scripts/def.dfn b/scripts/def.dfn
index d918d4c..5fd7525 100644
--- a/scripts/def.dfn
+++ b/scripts/def.dfn
@@ -27,12 +27,12 @@
 S-EXPORTS-E
 S-;Version 1.5.0beta58-E
 
-/* NOTE: @@@ is interpreted by the calling script as a signal to
+/* NOTE: PNG_JOIN is interpreted by the calling script as a signal to
  * join the two things on either side, so we can do symbol
  * substitution within the name, regular C ## joins the pp-tokens,
  * not their final values.
  */
 #define PNG_EXPORTA(ordinal, type, name, args, attributes)\
-	PNG_DEFN_MAGIC- SYMBOL_PREFIX @@@ name-PNG_DEFN_END
+	PNG_DEFN_MAGIC- SYMBOL_PREFIX PNG_JOIN name-PNG_DEFN_END
 
 #include "../png.h"
diff --git a/scripts/options.awk b/scripts/options.awk
index 24f0713..a30d668 100755
--- a/scripts/options.awk
+++ b/scripts/options.awk
@@ -35,13 +35,14 @@
    err=0                        # in-line exit sets this
    start="PNG_DEFN_MAGIC-"      # Arbitrary start
    end="-PNG_DEFN_END"          # Arbitrary end
-   cx= "/@@@*"                  # Open C comment for output file
+   ct="PNG_JOIN"                # Join two tokens
+   cx= "/" ct "*"               # Open C comment for output file
    comment=start cx             # Comment start
    cend="*/" end                # Comment end
-   def=start "#define PNG_@@@"  # Arbitrary define
-   sup="@@@_SUPPORTED" end      # end supported option
-   und=comment "#undef PNG_@@@" # Unsupported option
-   une="@@@_SUPPORTED" cend     # end unsupported option
+   def=start "#define PNG_" ct  # Arbitrary define
+   sup=ct "_SUPPORTED" end      # end supported option
+   und=comment "#undef PNG_" ct # Unsupported option
+   une=ct "_SUPPORTED" cend     # end unsupported option
    error=start "ERROR:"         # error message
 
    # Variables
diff --git a/scripts/sym.dfn b/scripts/sym.dfn
index 4b12ec2..f4f13df 100644
--- a/scripts/sym.dfn
+++ b/scripts/sym.dfn
@@ -10,6 +10,6 @@
  */
 
 #define PNG_EXPORTA(ordinal, type, name, args, attributes)\
-	PNG_DEFN_MAGIC-SYMBOL_PREFIX @@@ name-PNG_DEFN_END
+	PNG_DEFN_MAGIC-SYMBOL_PREFIX PNG_JOIN name-PNG_DEFN_END
 
 #include "../png.h"
diff --git a/scripts/vers.dfn b/scripts/vers.dfn
index a4bf5c7..89d5f38 100644
--- a/scripts/vers.dfn
+++ b/scripts/vers.dfn
@@ -11,13 +11,13 @@
 
 #define HEADER PNG_DEFN_MAGIC-PNGLIB_LIBNAME {global:-PNG_DEFN_END
 
-/* NOTE: @@@ is interpreted by the calling script as a signal to
+/* NOTE: PNG_JOIN is interpreted by the calling script as a signal to
  * join the two things on either side, so we can do symbol
  * substitution within the name, regular C ## joins the pp-tokens,
  * not their final values.
  */
 #define PNG_EXPORTA(ordinal, type, name, args, attributes)\
-	PNG_DEFN_MAGIC- SYMBOL_PREFIX @@@ name;-PNG_DEFN_END
+	PNG_DEFN_MAGIC- SYMBOL_PREFIX PNG_JOIN name;-PNG_DEFN_END
 
 #define TRAILER PNG_DEFN_MAGIC-local: *; };-PNG_DEFN_END