void writeBase36(OutBuffer *buf, unsigned i) { if (i >= 36) { writeBase36(buf, i / 36); i %= 36; } if (i < 10) buf->writeByte(i + '0'); else if (i < 36) buf->writeByte(i - 10 + 'A'); else assert(0); }
void writeBase36(size_t i) { if (i >= 36) { writeBase36(i / 36); i %= 36; } if (i < 10) buf.writeByte((char)(i + '0')); else if (i < 36) buf.writeByte((char)(i - 10 + 'A')); else assert(0); }
int substitute(RootObject *p) { for (size_t i = 0; i < components.dim; i++) { if (p == components[i]) { /* Sequence is S_, S0_, .., S9_, SA_, ..., SZ_, S10_, ... */ buf.writeByte('S'); if (i) writeBase36(i - 1); buf.writeByte('_'); return 1; } } return 0; }
int CppMangleState::substitute(OutBuffer *buf, void *p) { for (size_t i = 0; i < components.dim; i++) { if (p == components.tdata()[i]) { /* Sequence is S_, S0_, .., S9_, SA_, ..., SZ_, S10_, ... */ buf->writeByte('S'); if (i) writeBase36(buf, i - 1); buf->writeByte('_'); return 1; } } components.push(p); return 0; }