*ci->iassignto = v;
}
-void ident_addstring(const struct cmdinfo *ci, const char *string) {
- /* ci may be 0 and is provided so this can be .call */
+static void ident_addbyte(char c) {
+ IDENT_ADD_OBJ(c);
+}
+
+void ident_addstring(const char *string) {
sha256_update(&identsc,strlen(string)+1,string);
}
+void off_ident_addstring(const struct cmdinfo *ci, const char *string) {
+ ident_addbyte('S');
+ ident_addstring(string);
+}
+
void off_ident_addenv(const struct cmdinfo *ci, const char *name) {
const char *val = getenv(name);
+ ident_addbyte('E');
if (val) {
sha256_update(&identsc,strlen(name),name); /* no nul */
sha256_update(&identsc,1,"=");
- ident_addstring(0,val);
+ ident_addstring(val);
} else {
- ident_addstring(0,name);
+ ident_addstring(name);
}
}
unsigned char bbuf[32];
int i;
- ident_addstring(0,interp);
+ ident_addstring(interp);
if (script)
- ident_addstring(0,script);
+ ident_addstring(script);
sha256_digest(&identsc,sizeof(bbuf),bbuf);
for (i=0; i<identlen; i += 2)