Notes

 view release on metacpan or  search on metacpan

Object/Object.xs  view on Meta::CPAN

#define BLOCK Perl_BLOCK

#include "EXTERN.h"
#include "perl.h"
#include "XSUB.h"

#include "notesobject.h"

MODULE = Notes::Object		PACKAGE = Notes::Object

PROTOTYPES: DISABLE


void
is_ok( o )
      LN_Object *   o;
   PREINIT:
      d_LN_XSVARS;
   PPCODE:
      if ( LN_IS_OK(o) )
      {
		  XSRETURN_OK;
	  }
	  else
	  {
		  XSRETURN_NOT_OK;
	  }



void
is_not_ok( o )
      LN_Object *   o;
   PREINIT:
      d_LN_XSVARS;
   PPCODE:
      if ( LN_IS_NOT_OK(o) )
      {
		  XSRETURN_OK;
	  }
	  else
	  {
		  XSRETURN_NOT_OK;
	  }



void
status( o )
      LN_Object *   o;
   PREINIT:
      d_LN_XSVARS;
   PPCODE:
      XSRETURN_IV( (IV) LN_IVX( o ) );



void
set_status( o, ln_stat_value )
      LN_Object *     o;
      int             ln_stat_value;
   PREINIT:
      d_LN_XSVARS;
   PPCODE:
      LN_SET_IVX( o, ln_stat_value );
      XSRETURN( 0 );



void
status_text( o )
      LN_Object *   o;
   PREINIT:
      d_LN_XSVARS;
      char * ln_stat_text_lmbcs;
      char * ln_stat_text_native;
      WORD   ln_stat_text_length;
   PPCODE:
      /* Dynamically allocate our two status text buffers */
      Newz(1,ln_stat_text_lmbcs, LN_STAT_TEXT_LMBCS_LENGTH, char);
      if(ln_stat_text_lmbcs == (char *) NULL)
      {
		  XSRETURN_NOT_OK;
	  }

      /* Fetch Notes' status string in LMBCS, i.e.
       * MIXED Multi-Byte charstring format.
       */
      ln_stat_text_length = OSLoadString(
                               NULLHANDLE,
                               ERR( LN_IVX( o ) ),
                               ln_stat_text_lmbcs,
                               LN_STAT_TEXT_LMBCS_LENGTH
                            );
      if(ln_stat_text_length <= 0)
      {
         Safefree(ln_stat_text_lmbcs);
         XSRETURN_NOT_OK;
      }

      Newz(1, ln_stat_text_native, LN_STAT_TEXT_NATIVE_LENGTH, char);
      if(ln_stat_text_native == (char *) NULL)
      {
		  XSRETURN_NOT_OK;
	  }

      /* Translate from LMBCS to native, i.e. (single or double byte)
       * charstring to Native formatted text.
       */
      ln_stat_text_length = OSTranslate(
                               OS_TRANSLATE_LMBCS_TO_NATIVE,
                               ln_stat_text_lmbcs,
                               ln_stat_text_length,
                               ln_stat_text_native,
                               LN_STAT_TEXT_NATIVE_LENGTH
                            );
      if (ln_stat_text_length <= 0)
      {
         Safefree(ln_stat_text_lmbcs);
         Safefree(ln_stat_text_native);
         XSRETURN_NOT_OK;
      }

      XSRETURN_PV(ln_stat_text_native);



( run in 0.871 second using v1.01-cache-2.11-cpan-5511b514fd6 )