This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project wmaker-crm.git.

The branch, next has been updated
       via  1e06e1e29bb47dbffc31910d45f01e7d55ea3b39 (commit)
       via  4005557bb3d1c46fd67bc190d2927d1ebec7a14a (commit)
      from  556b0d77a1414f47b3dbf467de2841ee79db3b04 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://repo.or.cz/w/wmaker-crm.git/commit/1e06e1e29bb47dbffc31910d45f01e7d55ea3b39

commit 1e06e1e29bb47dbffc31910d45f01e7d55ea3b39
Author: David Maciejak <[email protected]>
Date:   Tue Aug 26 23:02:35 2014 +0800

    wrlib: remove duplicate code from xpm support
    
    This patch is removing the duplicate code by
    using functions create_rimage_xpm and is_xpm_error
    previously created.

diff --git a/wrlib/load_xpm.c b/wrlib/load_xpm.c
index 8f32bee1..8f3592d1 100644
--- a/wrlib/load_xpm.c
+++ b/wrlib/load_xpm.c
@@ -146,241 +146,33 @@ static int is_xpm_error(int status)
        }
        return 1;
 }
-RImage *RGetImageFromXPMData(RContext * context, char **xpmData)
+
+RImage *RGetImageFromXPMData(RContext *context, char **xpmData)
 {
-       Display *dpy = context->dpy;
-       Colormap cmap = context->cmap;
        RImage *image;
        XpmImage xpm;
-       unsigned char *color_table[4];
-       unsigned char *data;
-       int *p;
-       int i;
+       int status;
 
-       i = XpmCreateXpmImageFromData(xpmData, &xpm, (XpmInfo *) NULL);
-       if (i != XpmSuccess) {
-               switch (i) {
-               case XpmOpenFailed:
-                       RErrorCode = RERR_OPEN;
-                       break;
-               case XpmFileInvalid:
-                       RErrorCode = RERR_BADIMAGEFILE;
-                       break;
-               case XpmNoMemory:
-                       RErrorCode = RERR_NOMEMORY;
-                       break;
-               default:
-                       RErrorCode = RERR_BADIMAGEFILE;
-                       break;
-               }
+       status = XpmCreateXpmImageFromData(xpmData, &xpm, (XpmInfo *) NULL);
+       if (is_xpm_error(status))
                return NULL;
-       }
-       if (xpm.height < 1 || xpm.width < 1) {
-               RErrorCode = RERR_BADIMAGEFILE;
-               XpmFreeXpmImage(&xpm);
-               return NULL;
-       }
 
-       if (xpm.colorTable == NULL) {
-               RErrorCode = RERR_BADIMAGEFILE;
-               XpmFreeXpmImage(&xpm);
-               return NULL;
-       }
-       image = RCreateImage(xpm.width, xpm.height, True);
-       if (!image) {
-               XpmFreeXpmImage(&xpm);
-               return NULL;
-       }
-
-       /* make color table */
-       for (i = 0; i < 4; i++) {
-               color_table[i] = malloc(xpm.ncolors * sizeof(unsigned char));
-               if (!color_table[i]) {
-                       for (i = i - 1; i >= 0; i--) {
-                               if (color_table[i])
-                                       free(color_table[i]);
-                       }
-                       RReleaseImage(image);
-                       RErrorCode = RERR_NOMEMORY;
-                       XpmFreeXpmImage(&xpm);
-                       return NULL;
-               }
-       }
-
-       for (i = 0; i < xpm.ncolors; i++) {
-               XColor xcolor;
-               char *color = NULL;
-
-               if (xpm.colorTable[i].c_color)
-                       color = xpm.colorTable[i].c_color;
-               else if (xpm.colorTable[i].g_color)
-                       color = xpm.colorTable[i].g_color;
-               else if (xpm.colorTable[i].g4_color)
-                       color = xpm.colorTable[i].g4_color;
-               else if (xpm.colorTable[i].m_color)
-                       color = xpm.colorTable[i].m_color;
-               else if (xpm.colorTable[i].symbolic)
-                       color = xpm.colorTable[i].symbolic;
-
-               if (!color) {
-                       color_table[0][i] = 0xbe;
-                       color_table[1][i] = 0xbe;
-                       color_table[2][i] = 0xbe;
-                       color_table[3][i] = 0xff;
-                       continue;
-               }
-
-               if (strncmp(color, "None", 4) == 0) {
-                       color_table[0][i] = 0;
-                       color_table[1][i] = 0;
-                       color_table[2][i] = 0;
-                       color_table[3][i] = 0;
-                       continue;
-               }
-               if (XParseColor(dpy, cmap, color, &xcolor)) {
-                       color_table[0][i] = xcolor.red >> 8;
-                       color_table[1][i] = xcolor.green >> 8;
-                       color_table[2][i] = xcolor.blue >> 8;
-                       color_table[3][i] = 0xff;
-               } else {
-                       color_table[0][i] = 0xbe;
-                       color_table[1][i] = 0xbe;
-                       color_table[2][i] = 0xbe;
-                       color_table[3][i] = 0xff;
-               }
-       }
-       /* convert pixmap to RImage */
-       p = (int *)xpm.data;
-       data = image->data;
-       for (i = 0; i < xpm.width * xpm.height; i++) {
-               *(data++) = color_table[0][*p];
-               *(data++) = color_table[1][*p];
-               *(data++) = color_table[2][*p];
-               *(data++) = color_table[3][*p];
-               p++;
-       }
-       for (i = 0; i < 4; i++) {
-               free(color_table[i]);
-       }
+       image = create_rimage_from_xpm(context, xpm);
        XpmFreeXpmImage(&xpm);
        return image;
 }
 
-RImage *RLoadXPM(RContext * context, const char *file)
+RImage *RLoadXPM(RContext *context, const char *file)
 {
-       Display *dpy = context->dpy;
-       Colormap cmap = context->cmap;
        RImage *image;
        XpmImage xpm;
-       unsigned char *color_table[4];
-       unsigned char *data;
-       int *p;
-       int i;
+       int status;
 
-       i = XpmReadFileToXpmImage((char *)file, &xpm, (XpmInfo *) NULL);
-       if (i != XpmSuccess) {
-               switch (i) {
-               case XpmOpenFailed:
-                       RErrorCode = RERR_OPEN;
-                       break;
-               case XpmFileInvalid:
-                       RErrorCode = RERR_BADIMAGEFILE;
-                       break;
-               case XpmNoMemory:
-                       RErrorCode = RERR_NOMEMORY;
-                       break;
-               default:
-                       RErrorCode = RERR_BADIMAGEFILE;
-                       break;
-               }
-               return NULL;
-       }
-       if (xpm.height < 1 || xpm.width < 1) {
-               RErrorCode = RERR_BADIMAGEFILE;
-               XpmFreeXpmImage(&xpm);
+       status = XpmReadFileToXpmImage((char *)file, &xpm, (XpmInfo *) NULL);
+       if (is_xpm_error(status))
                return NULL;
-       }
 
-       if (xpm.colorTable == NULL) {
-               RErrorCode = RERR_BADIMAGEFILE;
-               XpmFreeXpmImage(&xpm);
-               return NULL;
-       }
-       image = RCreateImage(xpm.width, xpm.height, True);
-       if (!image) {
-               XpmFreeXpmImage(&xpm);
-               return NULL;
-       }
-
-       /* make color table */
-       for (i = 0; i < 4; i++) {
-               color_table[i] = malloc(xpm.ncolors * sizeof(unsigned char));
-               if (!color_table[i]) {
-                       for (i = i - 1; i >= 0; i--) {
-                               if (color_table[i])
-                                       free(color_table[i]);
-                       }
-                       RReleaseImage(image);
-                       RErrorCode = RERR_NOMEMORY;
-                       XpmFreeXpmImage(&xpm);
-                       return NULL;
-               }
-       }
-
-       for (i = 0; i < xpm.ncolors; i++) {
-               XColor xcolor;
-               char *color = NULL;
-
-               if (xpm.colorTable[i].c_color)
-                       color = xpm.colorTable[i].c_color;
-               else if (xpm.colorTable[i].g_color)
-                       color = xpm.colorTable[i].g_color;
-               else if (xpm.colorTable[i].g4_color)
-                       color = xpm.colorTable[i].g4_color;
-               else if (xpm.colorTable[i].m_color)
-                       color = xpm.colorTable[i].m_color;
-               else if (xpm.colorTable[i].symbolic)
-                       color = xpm.colorTable[i].symbolic;
-
-               if (!color) {
-                       color_table[0][i] = 0xbe;
-                       color_table[1][i] = 0xbe;
-                       color_table[2][i] = 0xbe;
-                       color_table[3][i] = 0xff;
-                       continue;
-               }
-
-               if (strncmp(color, "None", 4) == 0) {
-                       color_table[0][i] = 0;
-                       color_table[1][i] = 0;
-                       color_table[2][i] = 0;
-                       color_table[3][i] = 0;
-                       continue;
-               }
-               if (XParseColor(dpy, cmap, color, &xcolor)) {
-                       color_table[0][i] = xcolor.red >> 8;
-                       color_table[1][i] = xcolor.green >> 8;
-                       color_table[2][i] = xcolor.blue >> 8;
-                       color_table[3][i] = 0xff;
-               } else {
-                       color_table[0][i] = 0xbe;
-                       color_table[1][i] = 0xbe;
-                       color_table[2][i] = 0xbe;
-                       color_table[3][i] = 0xff;
-               }
-       }
-       /* convert pixmap to RImage */
-       p = (int *)xpm.data;
-       data = image->data;
-       for (i = 0; i < xpm.width * xpm.height; i++, p++) {
-               *(data++) = color_table[0][*p];
-               *(data++) = color_table[1][*p];
-               *(data++) = color_table[2][*p];
-               *(data++) = color_table[3][*p];
-       }
-       for (i = 0; i < 4; i++) {
-               free(color_table[i]);
-       }
+       image = create_rimage_from_xpm(context, xpm);
        XpmFreeXpmImage(&xpm);
        return image;
 }

http://repo.or.cz/w/wmaker-crm.git/commit/4005557bb3d1c46fd67bc190d2927d1ebec7a14a

commit 4005557bb3d1c46fd67bc190d2927d1ebec7a14a
Author: David Maciejak <[email protected]>
Date:   Tue Aug 26 22:58:57 2014 +0800

    wrlib: add merged code for xpm support in 2 distinct functions
    
    This patch is adding some merged code in
    create_rimage_from_xpm and is_xpm_error fonctions.

diff --git a/wrlib/load_xpm.c b/wrlib/load_xpm.c
index 35adbb12..8f32bee1 100644
--- a/wrlib/load_xpm.c
+++ b/wrlib/load_xpm.c
@@ -3,6 +3,7 @@
  * Raster graphics library
  *
  * Copyright (c) 1997-2003 Alfredo K. Kojima
+ * Copyright (c) 2014 Window Maker Team
  *
  *  This library is free software; you can redistribute it and/or
  *  modify it under the terms of the GNU Library General Public
@@ -31,6 +32,120 @@
 #include "wraster.h"
 #include "imgformat.h"
 
+static RImage *create_rimage_from_xpm(RContext *context, XpmImage xpm)
+{
+       Display *dpy = context->dpy;
+       Colormap cmap = context->cmap;
+       RImage *image;
+       unsigned char *color_table[4];
+       unsigned char *data;
+       int i;
+       int *p;
+
+       if (xpm.height < 1 || xpm.width < 1) {
+               RErrorCode = RERR_BADIMAGEFILE;
+               return NULL;
+       }
+
+       if (xpm.colorTable == NULL) {
+               RErrorCode = RERR_BADIMAGEFILE;
+               return NULL;
+       }
+       image = RCreateImage(xpm.width, xpm.height, True);
+       if (!image)
+               return NULL;
+
+       /* make color table */
+       for (i = 0; i < 4; i++) {
+               color_table[i] = malloc(xpm.ncolors * sizeof(unsigned char));
+               if (!color_table[i]) {
+                       for (i = i - 1; i >= 0; i--) {
+                               if (color_table[i])
+                                       free(color_table[i]);
+                       }
+                       RReleaseImage(image);
+                       RErrorCode = RERR_NOMEMORY;
+                       return NULL;
+               }
+       }
+
+       for (i = 0; i < xpm.ncolors; i++) {
+               XColor xcolor;
+               char *color = NULL;
+
+               if (xpm.colorTable[i].c_color)
+                       color = xpm.colorTable[i].c_color;
+               else if (xpm.colorTable[i].g_color)
+                       color = xpm.colorTable[i].g_color;
+               else if (xpm.colorTable[i].g4_color)
+                       color = xpm.colorTable[i].g4_color;
+               else if (xpm.colorTable[i].m_color)
+                       color = xpm.colorTable[i].m_color;
+               else if (xpm.colorTable[i].symbolic)
+                       color = xpm.colorTable[i].symbolic;
+
+               if (!color) {
+                       color_table[0][i] = 0xbe;
+                       color_table[1][i] = 0xbe;
+                       color_table[2][i] = 0xbe;
+                       color_table[3][i] = 0xff;
+                       continue;
+               }
+
+               if (strncmp(color, "None", 4) == 0) {
+                       color_table[0][i] = 0;
+                       color_table[1][i] = 0;
+                       color_table[2][i] = 0;
+                       color_table[3][i] = 0;
+                       continue;
+               }
+               if (XParseColor(dpy, cmap, color, &xcolor)) {
+                       color_table[0][i] = xcolor.red >> 8;
+                       color_table[1][i] = xcolor.green >> 8;
+                       color_table[2][i] = xcolor.blue >> 8;
+                       color_table[3][i] = 0xff;
+               } else {
+                       color_table[0][i] = 0xbe;
+                       color_table[1][i] = 0xbe;
+                       color_table[2][i] = 0xbe;
+                       color_table[3][i] = 0xff;
+               }
+       }
+       /* convert pixmap to RImage */
+       p = (int *)xpm.data;
+       data = image->data;
+       for (i = 0; i < xpm.width * xpm.height; i++, p++) {
+               *(data++) = color_table[0][*p];
+               *(data++) = color_table[1][*p];
+               *(data++) = color_table[2][*p];
+               *(data++) = color_table[3][*p];
+       }
+       for (i = 0; i < 4; i++)
+               free(color_table[i]);
+       return image;
+}
+
+static int is_xpm_error(int status)
+{
+       if (status == XpmSuccess)
+               return 0;
+
+       switch (status) {
+       case XpmOpenFailed:
+               RErrorCode = RERR_OPEN;
+               break;
+       case XpmFileInvalid:
+               RErrorCode = RERR_BADIMAGEFILE;
+               break;
+       case XpmNoMemory:
+               RErrorCode = RERR_NOMEMORY;
+               break;
+       default:
+               RErrorCode = RERR_BADIMAGEFILE;
+               break;
+       }
+       return 1;
+}
 RImage *RGetImageFromXPMData(RContext * context, char **xpmData)
 {
        Display *dpy = context->dpy;

-----------------------------------------------------------------------

Summary of changes:
 wrlib/load_xpm.c |  183 +++++++++++++----------------------------------------
 1 files changed, 45 insertions(+), 138 deletions(-)


repo.or.cz automatic notification. Contact project admin [email protected]
if you want to unsubscribe, or site admin [email protected] if you receive
no reply.
-- 
wmaker-crm.git ("The Window Maker window manager")


-- 
To unsubscribe, send mail to [email protected].

Reply via email to