From kjell.konis at epfl.ch  Thu Aug  7 16:03:15 2008
From: kjell.konis at epfl.ch (Kjell Konis)
Date: Thu, 7 Aug 2008 16:03:15 +0200
Subject: [Rd] string comparison
Message-ID: <D894FE1B-FBCD-4A57-B8F4-A36AD8B305A5@epfl.ch>

Hi,

I have a package where I do things like this a lot:

   if(strncmp(CHAR(asChar(Scategory)), "chance", 6) == 0)
     category = h_category_chance;
   else if(strncmp(CHAR(asChar(Scategory)), "utility", 7) == 0)
     category = h_category_utility;
   else if(strncmp(CHAR(asChar(Scategory)), "decision", 8) == 0)
     category = h_category_decision;
   else if(strncmp(CHAR(asChar(Scategory)), "instance", 8) == 0)
     category = h_category_instance;
   else
     category = h_category_error;

I would like to replace the strncmps with pointer comparisons so I set  
up some global variables in the R_init_myDLL function like this:

   charChance = install("chance")
   <etc.>

but I can't seem to get the comparison to work. I want to do something  
like

   if(CHAR(asChar(Scategory)) == charChance)
     category = h_category_chance;

but category always ends up being h_category_error. Any pointers would  
be appreciated.

Thanks,
Kjell



[Rd] string comparison
Kjell Konis