diff options
author | giraffedata <giraffedata@9d0c8265-081b-0410-96cb-a4ca84ce46f8> | 2013-09-28 22:24:33 +0000 |
---|---|---|
committer | giraffedata <giraffedata@9d0c8265-081b-0410-96cb-a4ca84ce46f8> | 2013-09-28 22:24:33 +0000 |
commit | 2730bca5129bf0304d7860c49925f159e61473da (patch) | |
tree | bc10b0b5f2bb1968ea19b0ea912132d96adf6e75 /analyzer/ppmhist.c | |
parent | ee7ca90d04b4427ae7a9c940dbc2243f0746d04d (diff) | |
download | netpbm-mirror-2730bca5129bf0304d7860c49925f159e61473da.tar.gz netpbm-mirror-2730bca5129bf0304d7860c49925f159e61473da.tar.xz netpbm-mirror-2730bca5129bf0304d7860c49925f159e61473da.zip |
Promote Development to make Release 10.64.00
git-svn-id: http://svn.code.sf.net/p/netpbm/code/advanced@2006 9d0c8265-081b-0410-96cb-a4ca84ce46f8
Diffstat (limited to 'analyzer/ppmhist.c')
-rw-r--r-- | analyzer/ppmhist.c | 52 |
1 files changed, 44 insertions, 8 deletions
diff --git a/analyzer/ppmhist.c b/analyzer/ppmhist.c index 78e6d82a..2f6c9348 100644 --- a/analyzer/ppmhist.c +++ b/analyzer/ppmhist.c @@ -101,24 +101,60 @@ parseCommandLine(int argc, const char ** argv, static int -countcompare(const void *ch1, const void *ch2) { - return ((colorhist_vector)ch2)->value - ((colorhist_vector)ch1)->value; +cmpUint(unsigned int const a, + unsigned int const b) { +/*---------------------------------------------------------------------------- + Return 1 if 'a' > 'b'; -1 if 'a' is < 'b'; 0 if 'a' == 'b'. + + I.e. what a libc qsort() comparison function returns. +-----------------------------------------------------------------------------*/ + return a > b ? 1 : a < b ? -1 : 0; } + +#ifndef LITERAL_FN_DEF_MATCH +static qsort_comparison_fn countcompare; +#endif + + static int -rgbcompare(const void * arg1, const void * arg2) { +countcompare(const void * const a, + const void * const b) { +/*---------------------------------------------------------------------------- + This is a 'qsort' collation function. +-----------------------------------------------------------------------------*/ + const struct colorhist_item * const histItem1P = a; + const struct colorhist_item * const histItem2P = b; - colorhist_vector const ch1 = (colorhist_vector) arg1; - colorhist_vector const ch2 = (colorhist_vector) arg2; + return cmpUint(histItem2P->value, histItem1P->value); +} + + + +#ifndef LITERAL_FN_DEF_MATCH +static qsort_comparison_fn rgbcompare; +#endif + +static int +rgbcompare(const void * const a, + const void * const b) { +/*---------------------------------------------------------------------------- + This is a 'qsort' collation function. +-----------------------------------------------------------------------------*/ + const struct colorhist_item * const histItem1P = a; + const struct colorhist_item * const histItem2P = b; int retval; - retval = (PPM_GETR(ch1->color) - PPM_GETR(ch2->color)); + retval = cmpUint(PPM_GETR(histItem1P->color), + PPM_GETR(histItem2P->color)); if (retval == 0) { - retval = (PPM_GETG(ch1->color) - PPM_GETG(ch2->color)); + retval = cmpUint(PPM_GETG(histItem1P->color), + PPM_GETG(histItem2P->color)); if (retval == 0) - retval = (PPM_GETB(ch1->color) - PPM_GETB(ch2->color)); + retval = cmpUint(PPM_GETB(histItem1P->color), + PPM_GETB(histItem2P->color)); } return retval; } |