if (c < 0x80U) {
obstack_1grow(obst, c);
} else if (c < 0x800) {
- obstack_1grow(obst, 0xC0 | (c >> 6));
- obstack_1grow(obst, 0x80 | (c & 0x3F));
+ obstack_1grow(obst, 0xC0 | (c >> 6));
+ goto one_more;
} else if (c < 0x10000) {
- obstack_1grow(obst, 0xE0 | ( c >> 12));
- obstack_1grow(obst, 0x80 | ((c >> 6) & 0x3F));
- obstack_1grow(obst, 0x80 | ( c & 0x3F));
+ obstack_1grow(obst, 0xE0 | (c >> 12));
+ goto two_more;
} else {
- obstack_1grow(obst, 0xF0 | ( c >> 18));
+ obstack_1grow(obst, 0xF0 | (c >> 18));
obstack_1grow(obst, 0x80 | ((c >> 12) & 0x3F));
+two_more:
obstack_1grow(obst, 0x80 | ((c >> 6) & 0x3F));
+one_more:
obstack_1grow(obst, 0x80 | ( c & 0x3F));
}
}