Sv_*set() doc's and extra const's for the SvPVX_const() tasks
Steve Peters [Sun, 8 May 2005 20:49:17 +0000 (15:49 -0500)]
Message-ID: <20050509014917.GA24132@mccoy.peters.homeunix.org>

p4raw-id: //depot/perl@24422

embed.fnc
perl_keyword.pl
pod/perlapi.pod
proto.h
sv.h
toke.c

index 4d99050..1873e63 100644 (file)
--- a/embed.fnc
+++ b/embed.fnc
@@ -362,7 +362,7 @@ Ap  |bool   |is_utf8_punct  |NN const U8 *p
 Ap     |bool   |is_utf8_xdigit |NN const U8 *p
 Ap     |bool   |is_utf8_mark   |NN const U8 *p
 p      |OP*    |jmaybe         |NN OP* arg
-p      |I32    |keyword        |NN char* d|I32 len
+p      |I32    |keyword        |NN const char* d|I32 len
 Ap     |void   |leave_scope    |I32 base
 p      |void   |lex_end
 p      |void   |lex_start      |SV* line
index 02d5df4..bb8bc74 100644 (file)
@@ -52,7 +52,7 @@ print <<END;
  */
 
 I32
-Perl_keyword (pTHX_ char *name, I32 len)
+Perl_keyword (pTHX_ const char *name, I32 len)
 {
 $switch
 unknown:
index ba8b4a8..400b264 100644 (file)
@@ -3053,7 +3053,7 @@ Found in file sv.h
 
 =item SvCUR_set
 
-Set the length of the string which is in the SV.  See C<SvCUR>.
+Set the current length of the string which is in the SV.  See C<SvCUR>.
 
        void    SvCUR_set(SV* sv, STRLEN len)
 
@@ -3215,6 +3215,15 @@ Like C<SvIV> but doesn't process magic.
 =for hackers
 Found in file sv.h
 
+=item SvIV_set
+
+Set the value of the IV pointer in sv to val.
+
+       void    SvIV_set(SV* sv, IV val)
+
+=for hackers
+Found in file sv.h
+
 =item SvLEN
 
 Returns the size of the string buffer in the SV, not including any part
@@ -3225,6 +3234,24 @@ attributable to C<SvOOK>.  See C<SvCUR>.
 =for hackers
 Found in file sv.h
 
+=item SvLEN_set
+
+Set the actual length of the string which is in the SV.
+
+       void    SvLEN_set(SV* sv, STRLEN len)
+
+=for hackers
+Found in file sv.h
+
+=item SvMAGIC_set
+
+Set the value of the MAGIC pointer in sv to val.
+
+       void    SvMAGIC_set(SV* sv, MAGIC* val)
+
+=for hackers
+Found in file sv.h
+
 =item SvNIOK
 
 Returns a boolean indicating whether the SV contains a number, integer or
@@ -3330,6 +3357,15 @@ sv only once. Use the more efficient C<SvNV> otherwise.
 =for hackers
 Found in file sv.h
 
+=item SvNV_set
+
+Set the value of the IV pointer in sv to val.
+
+       void    SvNV_set(SV* sv, NV val)
+
+=for hackers
+Found in file sv.h
+
 =item SvOK
 
 Returns a boolean indicating whether the value is an SV. It also tells
@@ -3581,6 +3617,15 @@ Like C<SvPV> but doesn't process magic.
 =for hackers
 Found in file sv.h
 
+=item SvPV_set
+
+Set the value of the PV pointer in sv to val.
+
+       void    SvPV_set(SV* sv, char* val)
+
+=for hackers
+Found in file sv.h
+
 =item SvREFCNT
 
 Returns the value of the object's reference count.
@@ -3644,6 +3689,15 @@ Dereferences an RV to return the SV.
 =for hackers
 Found in file sv.h
 
+=item SvRV_set
+
+Set the value of the RV pointer in sv to val.
+
+       void    SvRV_set(SV* sv, SV* val)
+
+=for hackers
+Found in file sv.h
+
 =item SvSTASH
 
 Returns the stash of the SV.
@@ -3653,6 +3707,15 @@ Returns the stash of the SV.
 =for hackers
 Found in file sv.h
 
+=item SvSTASH_set
+
+Set the value of the STASH pointer in sv to val.
+
+       void    SvSTASH_set(SV* sv, STASH* val)
+
+=for hackers
+Found in file sv.h
+
 =item SvTAINT
 
 Taints an SV if tainting is enabled.
@@ -3800,6 +3863,15 @@ Like C<SvUV> but doesn't process magic.
 =for hackers
 Found in file sv.h
 
+=item SvUV_set
+
+Set the value of the PV pointer in sv to val.
+
+       void    SvUV_set(SV* sv, UV val)
+
+=for hackers
+Found in file sv.h
+
 =item SvVOK
 
 Returns a boolean indicating whether the SV contains a v-string.
diff --git a/proto.h b/proto.h
index 89bc5a1..968422f 100644 (file)
--- a/proto.h
+++ b/proto.h
@@ -393,7 +393,7 @@ PERL_CALLCONV bool  Perl_is_utf8_mark(pTHX_ const U8 *p)
                        __attribute__((nonnull(pTHX_1)));
 PERL_CALLCONV OP*      Perl_jmaybe(pTHX_ OP* arg)
                        __attribute__((nonnull(pTHX_1)));
-PERL_CALLCONV I32      Perl_keyword(pTHX_ char* d, I32 len)
+PERL_CALLCONV I32      Perl_keyword(pTHX_ const char* d, I32 len)
                        __attribute__((nonnull(pTHX_1)));
 PERL_CALLCONV void     Perl_leave_scope(pTHX_ I32 base);
 PERL_CALLCONV void     Perl_lex_end(pTHX);
diff --git a/sv.h b/sv.h
index 869cd42..8b1a5d2 100644 (file)
--- a/sv.h
+++ b/sv.h
@@ -535,8 +535,32 @@ See C<SvCUR>.  Access the character as *(SvEND(sv)).
 =for apidoc Am|HV*|SvSTASH|SV* sv
 Returns the stash of the SV.
 
+=for apidoc Am|void|SvIV_set|SV* sv|IV val
+Set the value of the IV pointer in sv to val.
+
+=for apidoc Am|void|SvNV_set|SV* sv|NV val
+Set the value of the IV pointer in sv to val.
+
+=for apidoc Am|void|SvPV_set|SV* sv|char* val
+Set the value of the PV pointer in sv to val.
+
+=for apidoc Am|void|SvUV_set|SV* sv|UV val
+Set the value of the PV pointer in sv to val.
+
+=for apidoc Am|void|SvRV_set|SV* sv|SV* val
+Set the value of the RV pointer in sv to val.
+
+=for apidoc Am|void|SvMAGIC_set|SV* sv|MAGIC* val
+Set the value of the MAGIC pointer in sv to val.
+
+=for apidoc Am|void|SvSTASH_set|SV* sv|STASH* val
+Set the value of the STASH pointer in sv to val.
+
 =for apidoc Am|void|SvCUR_set|SV* sv|STRLEN len
-Set the length of the string which is in the SV.  See C<SvCUR>.
+Set the current length of the string which is in the SV.  See C<SvCUR>.
+
+=for apidoc Am|void|SvLEN_set|SV* sv|STRLEN len
+Set the actual length of the string which is in the SV.
 
 =cut
 */
@@ -854,6 +878,8 @@ in gv.h: */
                }                                       \
        } STMT_END
 
+#define SvPVX_const(sv)        ((const char*)SvPVX(sv))
+
 #define BmRARE(sv)     ((XPVBM*)  SvANY(sv))->xbm_rare
 #define BmUSEFUL(sv)   ((XPVBM*)  SvANY(sv))->xbm_useful
 #define BmPREVIOUS(sv) ((XPVBM*)  SvANY(sv))->xbm_previous
diff --git a/toke.c b/toke.c
index aeb0595..a50f625 100644 (file)
--- a/toke.c
+++ b/toke.c
@@ -5595,7 +5595,7 @@ S_pending_ident(pTHX)
  */
 
 I32
-Perl_keyword (pTHX_ char *name, I32 len)
+Perl_keyword (pTHX_ const char *name, I32 len)
 {
   switch (len)
   {