view examples/myset.c @ 18578:875f4510d6dc

Accept indexed images with color values below the first colormap entry (bug #41851). Change made for Matlab compatibility. * ind2gray.m: Change %!tests to accept an indexed image with colors below the first entry in the colormap. * ind2rgb.m: Change %!tests to accept an indexed image with colors below the first entry in the colormap. * ind2x.m: Change input validation to accept all floating point images with integer indices. Issue a warning if any of the indices are below the first entry in the colormap. Map all color indices below the first entry to the first color in the colormap.
author Rik <rik@octave.org>
date Mon, 17 Mar 2014 09:10:32 -0700
parents 224e76250443
children
line wrap: on
line source

#include "mex.h"

void
mexFunction (int nlhs, mxArray* plhs[],
             int nrhs, const mxArray* prhs[])
{
  char *str;
  mxArray *v;

  if (nrhs != 2 || ! mxIsString (prhs[0]))
    mexErrMsgTxt ("expects symbol name and value");

  str = mxArrayToString (prhs[0]);

  v = mexGetArray (str, "global");

  if (v)
    {
      mexPrintf ("%s is a global variable with the following value:\n", str);
      mexCallMATLAB (0, NULL, 1, &v, "disp");
    }

  v = mexGetArray (str, "caller");

  if (v)
    {
      mexPrintf ("%s is a caller variable with the following value:\n", str);
      mexCallMATLAB (0, NULL, 1, &v, "disp");
    }

  // WARNING!! Can't do this in MATLAB!  Must copy variable first.
  mxSetName (prhs[1], str);
  mexPutArray (prhs[1], "caller");
}