+int do_hbytes_clockincrement(ClientData cd, Tcl_Interp *ip,
+ HBytes_Var value, int change, int *result) {
+ Byte *data;
+ int len, bv;
+
+ if (change<-255 || change>255)
+ return staticerr(ip,"clockincrement change must be in range -255..255");
+
+ len= hbytes_len(value.hb);
+ data= hbytes_data(value.hb) + len;
+ while (len && change) {
+ bv= *--data;
+ bv += change;
+ *data= bv;
+ if (bv<0) change= -1;
+ else if (bv>255) change= +1;
+ else change= 0;
+ len--;
+ }
+ *result= change;
+
+ return TCL_OK;
+}
+