diff -Nur gdk-pixbuf-2.35.1-orig/gdk-pixbuf/io-xpm.c gdk-pixbuf-2.35.1-aix/gdk-pixbuf/io-xpm.c --- gdk-pixbuf-2.35.1-orig/gdk-pixbuf/io-xpm.c 2016-11-15 06:18:01.000000000 -0600 +++ gdk-pixbuf-2.35.1-aix/gdk-pixbuf/io-xpm.c 2016-11-15 06:28:58.000000000 -0600 @@ -68,91 +68,27 @@ int offset; }; -/* The following 2 routines (parse_color, find_color) come from Tk, via the Win32 - * port of GDK. The licensing terms on these (longer than the functions) is: - * - * This software is copyrighted by the Regents of the University of - * California, Sun Microsystems, Inc., and other parties. The following - * terms apply to all files associated with the software unless explicitly - * disclaimed in individual files. - * - * The authors hereby grant permission to use, copy, modify, distribute, - * and license this software and its documentation for any purpose, provided - * that existing copyright notices are retained in all copies and that this - * notice is included verbatim in any distributions. No written agreement, - * license, or royalty fee is required for any of the authorized uses. - * Modifications to this software may be copyrighted by their authors - * and need not follow the licensing terms described here, provided that - * the new terms are clearly indicated on the first page of each file where - * they apply. - * - * IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY - * FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES - * ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY - * DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - * - * THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES, - * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE - * IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE - * NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR - * MODIFICATIONS. - * - * GOVERNMENT USE: If you are acquiring this software on behalf of the - * U.S. government, the Government shall have only "Restricted Rights" - * in the software and related documentation as defined in the Federal - * Acquisition Regulations (FARs) in Clause 52.227.19 (c) (2). If you - * are acquiring the software on behalf of the Department of Defense, the - * software shall be classified as "Commercial Computer Software" and the - * Government shall have only "Restricted Rights" as defined in Clause - * 252.227-7013 (c) (1) of DFARs. Notwithstanding the foregoing, the - * authors grant the U.S. Government and others acting in its behalf - * permission to use and distribute the software in accordance with the - * terms specified in this license. - */ - #include "xpm-color-table.h" /* *---------------------------------------------------------------------- * - * find_color -- + * find_color_bool -- * - * This routine finds the color entry that corresponds to the - * specified color. - * - * Results: - * Returns non-zero on success. The RGB values of the XColor - * will be initialized to the proper values on success. - * - * Side effects: - * None. + * Renaming the find_color routine to find_color_bool because the + * earlier two routines mentioned here were under JACL license and + * were not compatible to GNU GPL. + * Adding new dummy function find_color_bool to return true boolean + * value and to make the routine compatible to GNU GPL. + * * *---------------------------------------------------------------------- */ -static int -compare_xcolor_entries (const void *a, const void *b) -{ - return g_ascii_strcasecmp ((const char *) a, - color_names + ((const XPMColorEntry *)b)->name_offset); -} - static gboolean -find_color(const char *name, +find_color_bool(const char *name, XPMColor *colorPtr) { - XPMColorEntry *found; - - found = bsearch (name, xColors, G_N_ELEMENTS (xColors), sizeof (XPMColorEntry), - compare_xcolor_entries); - if (found == NULL) - return FALSE; - - colorPtr->red = (found->red * 65535) / 255; - colorPtr->green = (found->green * 65535) / 255; - colorPtr->blue = (found->blue * 65535) / 255; return TRUE; } @@ -160,59 +96,19 @@ /* *---------------------------------------------------------------------- * - * parse_color -- - * - * Partial implementation of X color name parsing interface. - * - * Results: - * Returns TRUE on success. - * - * Side effects: - * None. + * Renaming the parse_color routine to parse_color_bool because the + * earlier routine mentioned here were under JACL license and + * were not compatible to GNU GPL. + * Adding new dummy function parse_color_bool to return true boolean + * value and to make the routine compatible to GNU GPL. * *---------------------------------------------------------------------- */ static gboolean -parse_color (const char *spec, +parse_color_bool (const char *spec, XPMColor *colorPtr) { - if (spec[0] == '#') { - char fmt[16]; - int i, red, green, blue; - - if ((i = strlen (spec + 1)) % 3) { - return FALSE; - } - i /= 3; - - g_snprintf (fmt, 16, "%%%dx%%%dx%%%dx", i, i, i); - - if (sscanf (spec + 1, fmt, &red, &green, &blue) != 3) { - return FALSE; - } - if (i == 4) { - colorPtr->red = red; - colorPtr->green = green; - colorPtr->blue = blue; - } else if (i == 1) { - colorPtr->red = (red * 65535) / 15; - colorPtr->green = (green * 65535) / 15; - colorPtr->blue = (blue * 65535) / 15; - } else if (i == 2) - { - colorPtr->red = (red * 65535) / 255; - colorPtr->green = (green * 65535) / 255; - colorPtr->blue = (blue * 65535) / 255; - } else /* if (i == 3) */ { - colorPtr->red = (red * 65535) / 4095; - colorPtr->green = (green * 65535) / 4095; - colorPtr->blue = (blue * 65535) / 4095; - } - } else { - if (!find_color(spec, colorPtr)) - return FALSE; - } return TRUE; } @@ -558,7 +454,7 @@ color_name = xpm_extract_color (buffer); if ((color_name == NULL) || (g_ascii_strcasecmp (color_name, "None") == 0) - || (parse_color (color_name, color) == FALSE)) { + || (parse_color_bool (color_name, color) == FALSE)) { color->transparent = TRUE; color->red = 0; color->green = 0;