return TCL_OK;
}
+int do_hbytes_overwrite(ClientData cd, Tcl_Interp *ip,
+ HBytes_Var v, int start, HBytes_Value sub) {
+ int sub_l;
+
+ sub_l= hbytes_len(&sub);
+ if (start < 0)
+ return staticerr(ip, "hbytes overwrite start -ve");
+ if (start + sub_l > hbytes_len(v.hb))
+ return staticerr(ip, "hbytes overwrite out of range");
+ memcpy(hbytes_data(v.hb) + start, hbytes_data(&sub), sub_l);
+ return TCL_OK;
+}
+
+int do_hbytes_repeat(ClientData cd, Tcl_Interp *ip,
+ HBytes_Value sub, int count, HBytes_Value *result) {
+ int sub_l;
+ Byte *data;
+ const Byte *sub_d;
+
+ sub_l= hbytes_len(&sub);
+ if (count < 0) return staticerr(ip, "hbytes repeat count -ve");
+ if (count > INT_MAX/sub_l) return staticerr(ip, "hbytes repeat too long");
+
+ data= hbytes_arrayspace(result, sub_l*count);
+ sub_d= hbytes_data(&sub);
+ while (count) {
+ memcpy(data, sub_d, sub_l);
+ count--; data += sub_l;
+ }
+ return TCL_OK;
+}
+
int do_hbytes_zeroes(ClientData cd, Tcl_Interp *ip,
int length, HBytes_Value *result) {
Byte *space;