chiark / gitweb /
New blockcipher mac stuff. New hbytes clockincrement.
[chiark-tcl.git] / hbytes / ulongs.c
index 496273182d7c5df5981b6bede662901cd85aa60e..f8b8c9e722d1ed6fc303e9ca9f6baa43ce3ed8b4 100644 (file)
@@ -6,6 +6,30 @@
 
 /* nice simple functions */
 
+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;
+}
+
 int do_ulong_int2ul(ClientData cd, Tcl_Interp *ip, int v,
                    unsigned long *result) {
   if (v<0) return staticerr(ip,"cannot convert -ve integer to ulong");