+int cht_do_hbytes_unprepend(ClientData cd, Tcl_Interp *ip,
+ HBytes_Var v, int preflength, HBytes_Value *result) {
+ const Byte *rdata= cht_hb_unprepend(v.hb, preflength);
+ if (!rdata) return underrun(ip);
+ cht_hb_array(result, rdata, preflength);
+ return TCL_OK;
+}
+
+int cht_do_hbytes_unappend(ClientData cd, Tcl_Interp *ip,
+ HBytes_Var v, int suflength, HBytes_Value *result) {
+ const Byte *rdata= cht_hb_unappend(v.hb, suflength);
+ if (!rdata) return underrun(ip);
+ cht_hb_array(result, rdata, suflength);
+ return TCL_OK;
+}
+
+int cht_do_hbytes_chopto(ClientData cd, Tcl_Interp *ip,
+ HBytes_Var v, int newlength, HBytes_Value *result) {
+ int suflength= cht_hb_len(v.hb) - newlength;
+ return cht_do_hbytes_unappend(0,ip,v, suflength, result);
+}