home *** CD-ROM | disk | FTP | other *** search
/ OpenStep 4.2 / Openstep-4.2-Intel-User.iso / usr / lib / perl5 / CORE / mg.h < prev    next >
C/C++ Source or Header  |  1997-03-29  |  886b  |  37 lines

  1. /*    mg.h
  2.  *
  3.  *    Copyright (c) 1991-1994, Larry Wall
  4.  *
  5.  *    You may distribute under the terms of either the GNU General Public
  6.  *    License or the Artistic License, as specified in the README file.
  7.  *
  8.  */
  9.  
  10. struct mgvtbl {
  11.     int        (*svt_get)    _((SV *sv, MAGIC* mg));
  12.     int        (*svt_set)    _((SV *sv, MAGIC* mg));
  13.     U32        (*svt_len)    _((SV *sv, MAGIC* mg));
  14.     int        (*svt_clear)    _((SV *sv, MAGIC* mg));
  15.     int        (*svt_free)    _((SV *sv, MAGIC* mg));
  16. };
  17.  
  18. struct magic {
  19.     MAGIC*    mg_moremagic;
  20.     MGVTBL*    mg_virtual;    /* pointer to magic functions */
  21.     U16        mg_private;
  22.     char    mg_type;
  23.     U8        mg_flags;
  24.     SV*        mg_obj;
  25.     char*    mg_ptr;
  26.     I32        mg_len;
  27. };
  28.  
  29. #define MGf_TAINTEDDIR 1
  30. #define MGf_REFCOUNTED 2
  31. #define MGf_GSKIP      4
  32.  
  33. #define MGf_MINMATCH   1
  34.  
  35. #define MgTAINTEDDIR(mg) (mg->mg_flags & MGf_TAINTEDDIR)
  36. #define MgTAINTEDDIR_on(mg) (mg->mg_flags |= MGf_TAINTEDDIR)
  37.