diff --git a/README.md b/README.md index a62e6d9..aa2d89e 100644 --- a/README.md +++ b/README.md @@ -406,6 +406,30 @@ If _k_ is not a valid index of c-bytevector the behaviour is undefined. Returns the byte at index _k_ of _c-bytevector_. +(**c-bytevector-char-set!** _c-bytevector_ _k_ _char_) + +If _k_ is not a valid index of c-bytevector the behaviour is undefined. + +Stores the _char_ in element _k_ of _c-bytevector_. + +(**c-bytevector-char-ref** _c-bytevector_ _k_) + +If _k_ is not a valid index of c-bytevector the behaviour is undefined. + +Returns the char at index _k_ of _c-bytevector_. + +(**c-bytevector-uchar-set!** _c-bytevector_ _k_ _char_) + +If _k_ is not a valid index of c-bytevector the behaviour is undefined. + +Stores the unsigned _char_ in element _k_ of _c-bytevector_. + +(**c-bytevector-uchar-ref** _c-bytevector_ _k_) + +If _k_ is not a valid index of c-bytevector the behaviour is undefined. + +Returns the unsigned char at index _k_ of _c-bytevector_. + (**c-bytevector-uint-ref** _c-bytevector_ _k_ _endianness_ _size_) (**c-bytevector-sint-ref** _c-bytevector_ _k_ _endianness_ _size_) (**c-bytevector-uint-set!** _c-bytevector_ _k_ _n_ _endianness_ _size_) diff --git a/documentation/foreign-c.html b/documentation/foreign-c.html index 8cf73ac..b37ec65 100644 --- a/documentation/foreign-c.html +++ b/documentation/foreign-c.html @@ -21,6 +21,8 @@ Schemes - 0.10.0 tracker
+Returns the byte at index k of c-bytevector.
+(c-bytevector-char-set! + c-bytevector k char)
+If k is not a valid index of c-bytevector the + behaviour is undefined.
+Stores the char in element k of + c-bytevector.
+(c-bytevector-char-ref c-bytevector + k)
+If k is not a valid index of c-bytevector the + behaviour is undefined.
+Returns the char at index k of + c-bytevector.
+(c-bytevector-uchar-set! + c-bytevector k char)
+If k is not a valid index of c-bytevector the + behaviour is undefined.
+Stores the unsigned char in element k of + c-bytevector.
+(c-bytevector-uchar-ref + c-bytevector k)
+If k is not a valid index of c-bytevector the + behaviour is undefined.
+Returns the unsigned char at index k of + c-bytevector.
(c-bytevector-uint-ref c-bytevector k endianness size) (c-bytevector-sint-ref c-bytevector diff --git a/documentation/foreign-c.pdf b/documentation/foreign-c.pdf index 1e613d6..f73fb68 100644 Binary files a/documentation/foreign-c.pdf and b/documentation/foreign-c.pdf differ diff --git a/foreign/c.sld b/foreign/c.sld index b0bad81..7fba2be 100644 --- a/foreign/c.sld +++ b/foreign/c.sld @@ -205,6 +205,11 @@ ;; TODO c-bytevector->u8-list ;; TODO u8-list->c-bytevector + c-bytevector-uchar-ref + c-bytevector-char-ref + c-bytevector-char-set! + c-bytevector-uchar-set! + c-bytevector-uint-ref c-bytevector-sint-ref c-bytevector-sint-set! diff --git a/foreign/c/c-bytevectors.scm b/foreign/c/c-bytevectors.scm index c77a46d..1712e9d 100644 --- a/foreign/c/c-bytevectors.scm +++ b/foreign/c/c-bytevectors.scm @@ -520,6 +520,18 @@ (c-bytevector-u8-set! b i (car vals))) b)) +(define (c-bytevector-uchar-ref c-bytevector index) + (integer->char (c-bytevector-u8-ref c-bytevector index))) + +(define (c-bytevector-uchar-set! c-bytevector index char) + (c-bytevector-u8-set! c-bytevector index (char->integer char))) + +(define (c-bytevector-char-ref c-bytevector index) + (integer->char (c-bytevector-s8-ref c-bytevector index))) + +(define (c-bytevector-char-set! c-bytevector index char) + (c-bytevector-s8-set! c-bytevector index (char->integer char))) + (define (c-bytevector-uint-ref c-bytevector index endness size) (case endness ((big)