9aa2d973eed1fc49b9a79bf3f45ecf9560c7657a galt Tue Jan 16 13:53:25 2018 -0800 Adding similar functions for storing a char in a pointer, useful with our hashes if you have simple char data. diff --git src/lib/obscure.c src/lib/obscure.c index 9b95092..6c5061d 100644 --- src/lib/obscure.c +++ src/lib/obscure.c @@ -241,30 +241,47 @@ { int bufSize = 64*1024, readSize; char *buf = needMem(bufSize); for (;;) { readSize = read(s, buf, bufSize); if (readSize > 0) mustWriteFd(d, buf, readSize); if (readSize <= 0) break; } freeMem(buf); } +void *charToPt(char c) +/* Convert char to pointer. Use when really want to store + * a char in a pointer field. */ +{ +char *pt = NULL; +return pt+c; +} + +char ptToChar(void *pt) +/* Convert pointer to char. Use when really want to store a + * pointer in a char. */ +{ +char *a = NULL, *b = pt; +return b - a; +} + + void *intToPt(int i) /* Convert integer to pointer. Use when really want to store an * int in a pointer field. */ { char *pt = NULL; return pt+i; } int ptToInt(void *pt) /* Convert pointer to integer. Use when really want to store a * pointer in an int. */ { char *a = NULL, *b = pt; return b - a; }