/* gv.h
*
- * Copyright (c) 1991-1999, Larry Wall
+ * Copyright (c) 1991-2001, Larry Wall
*
* You may distribute under the terms of either the GNU General Public
* License or the Artistic License, as specified in the README file.
#define GvFLAGS(gv) (GvXPVGV(gv)->xgv_flags)
/*
+=head1 GV Functions
+
=for apidoc Am|SV*|GvSV|GV* gv
Return the SV from the GV.
#define GvIN_PAD_on(gv) (GvFLAGS(gv) |= GVf_IN_PAD)
#define GvIN_PAD_off(gv) (GvFLAGS(gv) &= ~GVf_IN_PAD)
+/* XXX: all GvFLAGS options are used, borrowing GvGPFLAGS for the moment */
+
+#define GVf_UNIQUE 0x0001
+#define GvUNIQUE(gv) (GvGP(gv) && (GvGPFLAGS(gv) & GVf_UNIQUE))
+#define GvUNIQUE_on(gv) (GvGPFLAGS(gv) |= GVf_UNIQUE)
+#define GvUNIQUE_off(gv) (GvGPFLAGS(gv) &= ~GVf_UNIQUE)
+
+#ifdef USE_ITHREADS
+#define GV_UNIQUE_CHECK
+#else
+#undef GV_UNIQUE_CHECK
+#endif
+
#define Nullgv Null(GV*)
#define DM_UID 0x003